【发布时间】:2010-12-18 04:22:20
【问题描述】:
当数据类型为 VARCHAR(MAX) 时,SQL Server 2008 数据库字段可以包含多少个字符?
【问题讨论】:
标签: sql-server-2008 size varchar
当数据类型为 VARCHAR(MAX) 时,SQL Server 2008 数据库字段可以包含多少个字符?
【问题讨论】:
标签: sql-server-2008 size varchar
来自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.1 x 10^9 0.2 的一半。
对于快速需要此答案的未来读者:
2^31-1 = 2 147 483 647 个字符,或大约 21.47 亿
【讨论】:
请参阅MSDN reference table for maximum numbers/sizes。
每个 varchar 的字节数(最大值), varbinary(max)、xml、文本或图像 列:2^31-1
该列有两个字节的开销,因此实际数据的最大长度为 2^31-3 个字节。假设您使用的是单字节字符编码,则总共有 2^31-3 个字符。 (如果您使用的字符编码每个字符使用多于一个字节,则除以每个字符的总字节数。如果您使用的是可变长度字符编码,那么所有的赌注都没有了。)
【讨论】:
有一些值得一提的问题 - 您可能需要强制使用 varchar(max)
打印只处理 8000 个字符
【讨论】: