13

我想知道varcharSQL Server 2000 中的最大大小是多少。当我在某处搜索时,它写了 8000 个字符,而某处写了 8060 个字节。哪一个是正确的?

4

4 回答 4

24

Varchar 是 8000,nvarchar 是 4000。

这是 varchar msdn 参考: http:
//msdn.microsoft.com/en-us/library/aa258242 (SQL.80).aspx

于 2010-01-16T15:07:16.913 回答
11

SQL Server 数据页有 8k:8192 字节。从这里开始,为页头保留一部分,单行可以拥有的最大长度为 8060 字节。在一行中,varbinary(n)、varchar(n) 和 nvarchar(n) 类型不能超过 8000 字节,这意味着 varchar(8000) 是最大 Ascii 长度,nvarchar(4000) 是最大 Unicode 长度(因为 Unicode将每个字符存储在 2 个字节上)。

所有这些细节的最佳解释来自存储引擎内部:页面剖析

于 2010-01-16T17:25:36.703 回答
2

据我所知,它是 8000 个字符。

对于 Nvarchar,它是 4000。

于 2010-01-16T15:07:00.970 回答
2

varchar(max) 的最大大小很大(我认为是 2GB 或 2Gchars)。您可以为 varchar(n) 中的 n 指定的最大值为 8000,而为 nvarchar 指定的最大值为 4000。

于 2010-01-16T16:57:10.097 回答