我想了解SQL Server 2000中varchar
的最大长度是多少。在我进行谷歌搜索时,有些地方写到它最多可以容纳8000个字符,而有些地方却写到它最多可以容纳8060个字节。哪一个是正确的呢?
我想了解SQL Server 2000中varchar
的最大长度是多少。在我进行谷歌搜索时,有些地方写到它最多可以容纳8000个字符,而有些地方却写到它最多可以容纳8060个字节。哪一个是正确的呢?
Varchar是8000,而nvarchar是4000。
以下是varchar的MSDN参考:
http://msdn.microsoft.com/en-us/library/aa258242(SQL.80).aspx
SQL Server的数据页大小为8k: 8192字节。其中一部分被保留作为页面标题,剩下的8060字节是单个行可以拥有的最大长度。在行中,varbinary(n),varchar(n)和nvarchar(n)类型不能超过8000字节,这意味着varchar(8000)是Ascii最大长度,nvarchar(4000)是Unicode最大长度(因为Unicode将每个字符存储在2个字节上)。
所有这些细节的最佳解释来自存储引擎内部:页面解剖。
varchar
,1个字符=1个字节,对于 nvarchar
,1个字符=2个字节。 - marc_svarchar(max)的最大尺寸很大(我认为是2GB或2Gchars)。您可以为varchar(n)指定的n的最大值为8000,而对于nvarchar,则为4000。