57

当数据类型为 VARCHAR(MAX) 时,SQL Server 2008 数据库字段可以包含多少个字符?

4

4 回答 4

65

来自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 个字符。

于 2009-11-19T05:39:12.800 回答
47

对于快速需要此答案的未来读者:

2^31-1 = 2 147 483 647 个字符,或大约 21.47 亿

于 2017-12-04T12:21:58.790 回答
8

有关最大数量/大小,请参阅MSDN 参考表。

每个 varchar(max)、varbinary(max)、xml、text 或 image 列的字节数:2^31-1

该列有两个字节的开销,因此实际数据的最大长度为 2^31-3 个字节。假设您使用的是单字节字符编码,那么总共有 2^31-3 个字符。(如果您使用的字符编码每个字符使用多于一个字节,则除以每个字符的总字节数。如果您使用的是可变长度字符编码,那么所有的赌注都没有了。)

于 2009-11-19T05:40:49.910 回答
0

有一些值得一提的问题 - 您可能需要强制使用 varchar(max)

https://dba.stackexchange.com/questions/18483/varcharmax-field-cutting-off-data-after-8000-characters

并且 print 只处理 8000 个字符

如何使用打印语句打印 VARCHAR(MAX)?

于 2021-03-03T11:47:36.587 回答