当数据类型为 VARCHAR(MAX) 时,SQL Server 2008 数据库字段可以包含多少个字符?
4 回答
来自http://msdn.microsoft.com/en-us/library/ms176089.aspx
varchar [ ( n | max ) ] 可变长度、非 Unicode 字符数据。n 可以是 1 到 8,000 之间的值。max 表示最大存储大小为 2^31-1 字节。存储大小是输入数据的实际长度 + 2 个字节。输入的数据长度可以是 0 个字符。varchar 的 ISO 同义词是 char 变化或字符变化。
1 个字符 = 1 个字节。并且不要忘记终止的 2 个字节。所以,2^31-3 个字符。
对于快速需要此答案的未来读者:
2^31-1 = 2 147 483 647 个字符,或大约 21.47 亿
有关最大数量/大小,请参阅MSDN 参考表。
每个 varchar(max)、varbinary(max)、xml、text 或 image 列的字节数:2^31-1
该列有两个字节的开销,因此实际数据的最大长度为 2^31-3 个字节。假设您使用的是单字节字符编码,那么总共有 2^31-3 个字符。(如果您使用的字符编码每个字符使用多于一个字节,则除以每个字符的总字节数。如果您使用的是可变长度字符编码,那么所有的赌注都没有了。)
有一些值得一提的问题 - 您可能需要强制使用 varchar(max)
并且 print 只处理 8000 个字符