sqlnvarchar长度
① sql中varchar和nvarchar有什么区别
SQL中varchar和nvarchar区别:输入不同,含义不同。
一、输入不同:
varchar(4)可以输入4个字线,也可以输入两个汉字。
nvarchar(4)可以输四个汉字,也可以输4个字母,但最多四个。
二、含义不同:
varchar(n)长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。
nvarchar(n)包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。
字符数据类型
Varchar是变长字符数据,其长度不超过8KB。Char是定长字符数据,其长度最多为8KB。超过8KB的ASCII数据可以使用Text数据类型存储。例如,因为Html文档全部都是ASCII字符,并且在一般情况下长度超过8KB,所以这些文档可以Text数据类型存储在SQLServer中。
在SQLServer中,Unicode数据以Nchar、Nvarchar和Ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar字符类型,这时最多可以存储4000个字符。
以上内容参考:网络-SQL数据类型
② SQL server中的nvarchar最大的长度是4000个字吗
1、在SQL2000版本中,最大长度是4000。
2、在SQL2005及以上版本中,最大长度是2G,本人实测,SQL2008中,将测试数据库中一个字段定义为nvarchar(max),然后使用以下SQL语句。
UPDATEA13SET[科室]=[科室]+[科室]--科室字段定义为nvarchar(max)
SELECTLEN([科室])FROMA13
--运行结果
--长度
--83886080
连继N次重复运行后科室字段的长度已达吓人的84M,到底多大,有兴趣可以自个试试,不过,越大执行速度会越慢哦。
3、注意,在某些情况下,前台应用对过长的字串是无法正确处理的,比如一些表格控制,比如C++定义的字符串变量。