![](/img/trans.png)
[英]SQL Server: Replace a list of ASCII characters from a VARCHAR(MAX) field
[英]Number of Characters in SQL Server varchar(max)?
Microsoft关于varchar(max)数据类型的文档:
“可变长度的非Unicode字符串数据..max表示最大存储大小为2 ^ 31-1字节(2 GB) 。存储大小是输入数据的实际长度+ 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个字符
数字2 ^ 31-1以十六进制表示为0x7fffffff。 它是二进制兼容机器(例如x86以及几乎所有其他机器)上最大可能的正32位数字。
该文档告诉您这是最大存储大小,必须容纳数据长度加上2个字节。 这意味着最大数据大小为2 ^ 31-1-2或2,147,483,645(0x7FFFFFFD)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.