SQL Server中Text和varchar(max)数据类型区别

以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与varchar(max)和nvarchar(max)的区别,主要是对操作符的限制,text只能被下列函数作用:

函数 语句

DATALENGTH

READTEXT

PATINDEX

SET TEXTSIZE

SUBSTRING

UPDATETEXT

TEXTPTR

WRITETEXT

TEXTVALID

 

举个列子,如果“文本”这一列的数据类型为text,那么它将不能用于“=”“left()”等操作,比如下面的例子:

建立表,填充数据:

if exists (select * from sysobjects where id = OBJECT_ID('[asdf]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)

DROP TABLE [asdf]

CREATE TABLE [asdf] (

[inttest] [int] IDENTITY (1, 1) NOT NULL ,

[text] [text] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [asdf] WITH NOCHECK ADD CONSTRAINT [PK_asdf] PRIMARY KEY NONCLUSTERED ( [inttest] )

SET IDENTITY_INSERT [asdf] ON

INSERT [asdf] ( [inttest] , [text] , [varcharmax] ) VALUES ( 1 , '1111111' , '1111111' )

SET IDENTITY_INSERT [asdf] OFF

运行查询:

查询一:
SELECT [text]

,[varcharmax]

FROM [testDB].[dbo].[asdf]

where

[text] ='11111' AND

[varcharmax] = '1111111'

会出现以下错误提示:

消息402,级别16,状态1,第1 行

数据类型text 和varchar 在equal to 运算符中不兼容。

查询二:
SELECT [text]

,[varcharmax]

FROM [testDB].[dbo].[asdf]

where

[varcharmax] = '1111111'

可以成功运行

在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max)、nvarchar(max)、varbinary(max) )。大值数据类型最多可以存储2^30-1个字节的数据。

这几个数据类型在行为上和较小的数据类型 varcharnvarchar 和 varbinary 相同。

微软的说法是用这个数据类型来代替之前的textntext 和 image 数据类型,它们之间的对应关系为:

varchar(max)-------text;

nvarchar(max)-----ntext;

varbinary(max)----image.

有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varcahr的都可以用在varchar(max)上。

另外,这个还支持对插入的删除的表中的大值数据类型列引用上使用 AFTER 触发器。text就不行,总之,用了大值数据类型之后,我是“腰也不疼了,腿也不酸了,一口气也能上六楼了”。还等什么呢,快用大值类型吧。

原著:http://www.cnblogs.com/jhxk/articles/1633578.html
注意:本文只是为了本人以后的方便而存在了这里,若有著作权问题,请联系本人将该文删除。

转载于:https://www.cnblogs.com/liangjiang/p/5660902.html

SQL Server中Text和varchar(max)数据类型区别相关推荐

  1. SQL Server中TEXT类型操作

    SQL Server中TEXT类型字段值在数据库中追加字符串方法 对text类型字段值进行追加更新的操作,一开始用了简单的update语句试了试,有错误,原来text.ntext类型的字段不能和 va ...

  2. Sql Server 中存储过程的output return的区别

    看http://zxianf.blog.163.com/blog/static/301207012009114104124969/中片关于Sql Server中存储过程output和return值的区 ...

  3. SQL Server中 char与varchar

    固定长度(char)与可变长度(varchar)字符数据类型 char[(n)] 长度为n个字节的固定长度且非Unicode的字符数据.n必须是一个介于1和8,000之间的数值.存储大小为n个字节.c ...

  4. SQL Server中临时表与表变量的区别

    我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...

  5. SQL Server--[转]SQL Server中临时表与表变量的区别

    http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临 ...

  6. 可以储存照片的字段类型是_在sql server中,储存图片的数据类型是什么呀?

    梵蒂冈之花 用image类型方法:1.建立过程CREATE PROCEDURE sp_textcopy (@srvname varchar (30),@login varchar (30),@pass ...

  7. SQL Server中怎样用命令修改数据类型

    修改字段名: alter table 表名 rename column 旧名称 to 新名称 修改字段类型: alter table 表名 alter column 字段名 varchar(255) ...

  8. 在SQL Server中比较VARCHAR(max)与VARCHAR(n)数据类型

    I have seen that SQL developers use varchar(max) data while designing the tables or temporary tables ...

  9. Sql server中的Text数据类型

    在什么情况下应用这个类型 [quote] 超过 8KB 的ASCII 数据可以使用Text数据类型存储.例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些 ...

最新文章

  1. java反射最佳实践,java反射性能测试分析
  2. a different object with the same identifier value was already associated with the session解决方案
  3. 【杂谈】认识有三AI的一年,从机械转行CV到专栏作者
  4. ArrayList和HashSet
  5. get+php+mysql_Apache+PHP+MySql 的安装及配置
  6. IBM研究院计画5年改变人类生活创新预测
  7. java webdriver page object_Selenium2(java)页面对象模型(Page Object) 八
  8. htaccess是什么文件
  9. C++ STL 使用assign对list中的元素进行重置
  10. 三菱melsec-a系列plc的指令与编程_三菱Q系列PLC定时器、计数器结构化编程基础
  11. PHP如何关闭notice级别的错误提示
  12. 锐捷交换机堆叠配置举例
  13. 【吐血整理】CSDN上各个大厂网络安全岗面试题及个人模拟面试经验精选总结
  14. Gabor滤波器 pytorch实现
  15. 容器技术介绍之docker核心技术概述
  16. android 排他button,javascript排他思想
  17. UCSC下载ENCODE数据
  18. 一种可扩展的同时进化实例和特征选择方法
  19. centOS命令之locate
  20. torch.multinomial使用

热门文章

  1. Win1远程出现“这可能是由于credssp加密oracle修正”解决办法
  2. JAVA高性能内存队列-disruptor
  3. 详解浏览器 428 状态码 428 Precondition Required
  4. Android开发笔记(十六)秋千摇摆动画SwingAnimation
  5. Quick Sort(三向切分的快速排序)(Java)
  6. 全息营销话题提纲(2-1)--王甲佳全息营销系列15
  7. Lock应用之 读写锁
  8. IOS开发中的几种设计模式
  9. .net快速创建PDF文档 by c#
  10. hadoop 权威指南学习笔记ing(1)