SQL Server Text type vs. varchar data type:
根据经验,如果您需要文本值超过200 字符并且不要在此列上使用连接,请使用TEXT。
否则使用VARCHAR。
假设我的数据现在是4000个字符,并且我不在此列上使用连接。通过该引用,与使用varchar(4000)相比,使用TEXT / varchar(max)更有利。
为什么这样? (在这种情况下,TEXT / varchar(max)有什么优势超过正常的varchar?)
答案 0 :(得分:4)
不推荐使用TEXT,改为使用nvarchar(max)
,varchar(max)
和varbinary(max)
:http://msdn.microsoft.com/en-us/library/ms187993.aspx
答案 1 :(得分:2)
我不同意200件事,因为没有解释,除非它与被弃用的"text in row" option
有关答案 2 :(得分:0)
在旧版本的SQL(2000及更早版本?)中,最大行长度为8 KB(或8060字节)。如果您将varchar用于许多长文本列,则它们将包含在此长度中,而任何文本列都不会,因此您可以在一行中保留更多文本。
此问题已在更新版本的SQL中得到解决。
This MSDN page包括声明:
SQL Server 2005支持启用变量的行溢出存储 在行外推的长度列。只存储一个24字节的根 可变长度列的主记录被推出行;因为 其中,有效行限制高于先前版本 SQL Server。有关更多信息,请参阅“行溢出数据” SQL Server 2005联机丛书中超过8 KB的主题。