SQL Server中Text和varchar(max)数据类型区别
2023-09-11 14:19:24 时间
SQL Server中Text和varchar(max)数据类型区别
以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与varchar(max)和nvarchar(max)的区别,主要是对操作符的限制,text只能被下列函数作用:
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)上。另外,这个还支持对插入的和删除的表中的大值数据类型列引用上使用 AFTER 触发器。text就不行,总之,用了大值数据类型之后,我是“腰也不疼了,腿也不酸了,一口气也能上六楼了”。还等什么呢,快用大值类型吧。
相关文章
- SQL Server不区分大小写的问题
- Sql Server之旅——第八站 复合索引和include索引到底有多大区别?
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- SQL Server基础Sql语句复习
- 【转载】SAP_ECC6.0_EHP4或SAP_ECC6.0_EHP5_基于Windows_Server_2008R2_和SQL_server_2008下的安装
- SQL查询优化:详解SQL Server非聚集索引(转载)
- SQL SERVER中强制类型转换cast和convert的区别
- SQL Server 2008开启sa用户名和远程连接
- 【原创】MySQL Proxy - connect_server()
- SQL Server 2012 AlwaysOn高可用性组部署总结及截图下载 - 曾垂鑫的技术专栏 - 51CTO技术博客
- MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法
- [SQL] sql server中如何查看执行效率不高的语句
- 使用Java程序通过http post访问Application server
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- Sql Server 存储过程基础
- SQL Server中clustered与nonclustered的区别
- 中转server
- MySQL和SQL Server一些基本用法区别
- C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
- 利用PowerUpSQL攻击SQL Server实例——本质上就是利用弱密码登录SQL server
- SQL Server 分离
- SQL Server SQL脚本