如果我选择nvarchar(MAX),我不知道字符数是否有限制,而且我不确定我还需要多少个字符。
这里使用的标准数据类型是什么?我正在使用SQL Server 2008 R2
答案 0 :(得分:28)
不推荐使用ntext
类型,text
和image
也是如此。 Microsoft建议分别使用nvarchar(max)
,varchar(max)
和varbinary(max)
替换它们。
因此使用nvarchar(max)
。
参考:
答案 1 :(得分:7)
使用nvarchar(MAX)的优点是可以在nvarchar(MAX)上运行诸如Replace,Left,Len等函数,但不能在ntext上运行。 ntext局部变量也不能在存储过程中创建,但nvarchar(MAX)可以。
ntext也可能在将来被弃用,有利于nvarchar(MAX),请参阅:
答案 2 :(得分:1)
NVARCHAR(MAX)的默认设置是将其文本值存储在表结构中,除非文本超过8,000个字节(4000个双字节字符),此时它的行为类似于NTEXT并存储LOB中的文本值,并存储指向表中文本的指针 - 这会使性能更差。
简而言之,转到NVARCHAR(4000)
,只要可以丢失超过8K的字节。