cit*_*nas 3 database asp.net sql-server-2008 linq-to-sql
可能重复:
总是使用nvarchar(MAX)有什么缺点吗?
通过选择'ntext'作为列类型而不是包含字符但具有有限的最大大小(如'char'或'varchar')的类型,是否存在一般性缺点?
我不确定有限的列大小是否适用于我的所有列.因此,我会对包含文本的所有列使用'ntext'.这可能导致将来出现问题吗?
(我在ASP.net Webforms应用程序中使用Linq-To-SQL)
NTEXT一开始就被弃用,因此您应该使用NVARCHAR(MAX).
您应该始终尝试使用列可能的最小数据类型.如果您确实需要在一个字段中支持超过4000个字符,那么您将需要使用NVARCHAR(MAX).如果您不需要支持超过4000个字符,请使用NVARCHAR(n).
我相信NTEXT总是存储在行外,在查询时会产生开销.如果可能,NVARCHAR(MAX)可以存储在行中.如果它不能适合行,那么SQL Server会将其推出行.请参阅此 MSDN文章.
编辑:
对于NVARCHAR,支持的最大显式大小为4000.之后,您需要使用MAX,最多需要2 ^ 31-1个字节.
对于VARCHAR,在需要切换到MAX之前,支持的最大显式大小为8000.