SQL Server 2005之后版本:请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。

Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。

以前只知道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个字节的数据。

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

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

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

nvarchar(max)-----ntext;

varbinary(max)----image.

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

最新文章

  1. 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)
  2. 绑定线程到特定CPU处理器
  3. htm5实现视差动画
  4. groupinfo
  5. sqlite ef6 踩坑
  6. Python 迭代器之列表解析与生成器
  7. 【原创】大叔问题定位分享(27)spark中rdd.cache
  8. MySQL 安装步骤
  9. Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇
  10. js记录用户访问页面和停留时间
  11. Kudu-java数据库简单操作
  12. iOS - swift项目接入bugly - 报错, 配置符号表,下载Java环境,
  13. 51nod1019 逆序数
  14. 同一sql表,在页面展示多级菜单
  15. 《OpenGL超级宝典》编程环境配置
  16. 设置跨交换机VLAN
  17. [转]ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同
  18. 一款基于的jQuery仿苹果样式焦点图插件
  19. 使用padding和float处理带有间隙的多块布局
  20. webpack 打包图片 能否提高加载速度

热门文章

  1. Pytorch tutorial 之Datar Loading and Processing (1)
  2. proc/net/dev实时网速统计实例【转】
  3. Windows PowerShell 入門(3)-スクリプト編
  4. Flash芯片你都认识吗?
  5. 范围for语句
  6. Python学习前期准备---第九天
  7. Openssl编程--源码分析
  8. CAN总线相关的几个gitlab代码
  9. ubuntu 16.04 登录后黑屏
  10. $Django cookies与session--解决无连接无状态问题, session配置