nvarchar(MAX)将保留的最大字符数是多少?

时间:2010-11-24 18:04:11

标签: sql-server tsql

我是概念nvarchar(MAX)的新手。它会包含多少个字符?

3 个答案:

答案 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)的字符少于一半。

nchar and nvarchar

相关问题