Microsoft 关于 varchar(max) 数据类型的文档:
“变长,非Unicode字符串数据……max表示最大存储大小为2^31-1字节(2GB)。存储大小为输入数据的实际长度+2字节”
http://technet.microsoft.com/en-us/library/ms176089.aspx
我认为 2^31 字节 = 2 GB,而不是 2^31-1 字节 = 2 GB。在这一点上我错了吗?
其中两个字节是为列开销保留的,所以问题变成了:
数据类型将存储多少个字符?
a) 2^31-3 = 2,147,483,645 字节 = 2,147,483,645 字符
b) 2^31-2 = 2,147,483,646 字节 = 2,147,483,646 字符