我是概念nvarchar(MAX)
的新手。它会包含多少个字符?
答案 0 :(得分:153)
最大。容量是2千兆字节的空间 - 因此您正在查看适合NVARCHAR(MAX)
字段的超过10亿个2字节字符。
使用其他答案更详细的数字,您应该可以存储
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
在NVARCHAR(MAX)
列中(不幸的是,后半个字符被浪费了......)
更新:,因为@MartinMulder指出:任何可变长度字符列也有2字节开销用于存储实际长度 - 所以我需要从2 ^ 31 - 1
中减去另外两个字节我之前已经规定的长度 - 因此你可以存储比我之前声称的少1个Unicode字符。
答案 1 :(得分:11)
来自char and varchar (Transact-SQL)
varchar [(n | max)]
可变长度,非Unicode字符 数据。 n可以是1到1之间的值 8000。 max表示 最大存储大小为2 ^ 31-1个字节。 存储大小是实际长度 输入的数据+ 2个字节。数据 输入的长度可以是0个字符。 varchar的ISO同义词是char 变化或性格变化。
答案 2 :(得分:4)
2 ^ 31-1个字节。因此,varchar(max)的字符少于2 ^ 31-1个字符,nvarchar(max)的字符少于一半。