关于这个主题的MSDN有这样的说法:
nvarchar (n= max ) 可变长度Unicode字符数据。ncan可以是1到4,000之间的值。max表示最大存储大小为2^31-1字节.存储大小(以字节为单位)是输入的字符数+2个字节的两倍。输入的数据长度可以为0字符。nvarchar的ISO同义词是国家字符的变化和民族特征的变化。
这让我很困惑。我可以定义一列为1-4000长,或2147483647长,但两者之间没有?我的理解正确吗?为什么我不能明确指出两者之间的价值呢?
发布于 2011-08-03 16:41:15
NVARCHAR(MAX)涵盖了其他所有内容(不仅仅是20亿个字符)。如果您需要超过4,000个字符,那么数据肯定会离开页面,所以就行为而言,使用过4,001个字符、10,000个字符或10,000,000个字符并不重要。它只占用您需要的空间,所以不要认为您在浪费(2 billion characters - the length of your actual string)。
发布于 2011-08-03 16:41:43
Max将接受4001到1073741823之间的值(请记住,存储大小大约是实际字符串长度的2倍)。
限制基本上是任何超过4000个字符都必须是一个MAX。
发布于 2011-08-03 16:40:30
因为4000字符或更少的字符在存储方面有一种行为,而MAX在存储方面有另一种行为。你真的不想开始强迫对长度为1米的东西进行字符串长度计算,对吗?我目前的理解是,多达4000个字符存储在表中,MAX存储在表外。
另外,NVARCHAR(最大)和VARCHAR(最大)是文本和ntext的替代品。
https://stackoverflow.com/questions/6929969
复制相似问题