关于varchar(max), nvarchar(max)和varbinary(max)
2013-12-05 00:02
405 查看
在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max)、nvarchar(max)、varbinary(max) )。大值数据类型最多可以存储2^30-1个字节的数据。
这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同。
微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:
varchar(max):文本,代替text
nvarchar(max):Unicode文本,代替ntext ,存放多语言文本的时候必须用这个
barbinary(max):二进制数据,代替image,存放非文本数据必须用这个
有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varcahr的都可以用在varchar(max)上。
另外,这个还支持对插入的和删除的表中的大值数据类型列引用上使用 AFTER 触发器,text就不行
SQL 2005 中varchar(max) 的用法
-- 测试一 varchar(10)
declare @str1 varchar(4001)
declare @str2 varchar(4001)
select @str1 = replicate( ’1 ’,4001)
select @str2 = replicate( ’2 ’,4001)
--最大长度,其余截断
select len(@str1 + @str2)
--结果8000
-- 测试二 varchar(max)
declare @str1 varchar(4050)
declare @str2 varchar(4050)
select @str1 = replicate( ’1 ’,4050)
select @str2 = replicate( ’2 ’,4051)
select len(convert(varchar(max),@str1)+@str2)
select len(cast(@str1 as varchar(max))+@str2)
--结果8100
-- 测试三
declare @str1 varchar(max)
select @str1 = replicate(’1’,8006)
--字符最长为8000
select len(@str1)
--结果8000
这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同。
微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:
varchar(max):文本,代替text
nvarchar(max):Unicode文本,代替ntext ,存放多语言文本的时候必须用这个
barbinary(max):二进制数据,代替image,存放非文本数据必须用这个
有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varcahr的都可以用在varchar(max)上。
另外,这个还支持对插入的和删除的表中的大值数据类型列引用上使用 AFTER 触发器,text就不行
SQL 2005 中varchar(max) 的用法
-- 测试一 varchar(10)
declare @str1 varchar(4001)
declare @str2 varchar(4001)
select @str1 = replicate( ’1 ’,4001)
select @str2 = replicate( ’2 ’,4001)
--最大长度,其余截断
select len(@str1 + @str2)
--结果8000
-- 测试二 varchar(max)
declare @str1 varchar(4050)
declare @str2 varchar(4050)
select @str1 = replicate( ’1 ’,4050)
select @str2 = replicate( ’2 ’,4051)
select len(convert(varchar(max),@str1)+@str2)
select len(cast(@str1 as varchar(max))+@str2)
--结果8100
-- 测试三
declare @str1 varchar(max)
select @str1 = replicate(’1’,8006)
--字符最长为8000
select len(@str1)
--结果8000
相关文章推荐
- 关于varchar(max), nvarchar(max)和varbinary(max)
- MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
- SQL Server 2005:请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。
- Varchar(max),nvarchar(max) ,varbinary(max)
- MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(m
- MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
- MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
- varchar(max)、nvarchar(max)和varbinary(max)数据类型
- sql server - varchar(max), NVARCHAR(MAX), VARBINARY(MAX) (zz)
- 了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)
- 使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型代替text、ntext 和 image 数据类型
- 了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)
- SQL Server中的varchar(max)、nvarchar(max) 和varbinary(max) 数据类型
- MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
- MS Sqlserver下关于Varchar到Nvarchar的转换query
- nchar[(n)], nvarchar[n|max], char[(n)], varchar[(n|max)] 详解
- 关于varchar与nvarchar的“N”
- SQL Server中TEXT/NTEXT字段内容替换方法总结(SQL 2005及以上建议使用VARCHAR(MAX)/NVARCHAR(MAX)代替)
- 关于数据库中varchar/nvarchar类型数据的获取注意事项
- 数据库设计---0001 关于varchar 和nvarchar