我应该将HTML存储为nvarchar(MAX)还是ntext?

时间:2011-08-07 21:37:26

标签: sql sql-server database sql-server-2008

如果我选择nvarchar(MAX),我不知道字符数是否有限制,而且我不确定我还需要多少个字符。

这里使用的标准数据类型是什么?我正在使用SQL Server 2008 R2

3 个答案:

答案 0 :(得分:28)

不推荐使用ntext类型,textimage也是如此。 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),请参阅:

ntext, text, and image

答案 2 :(得分:1)

NVARCHAR(MAX)的默认设置是将其文本值存储在表结构中,除非文本超过8,000个字节(4000个双字节字符),此时它的行为类似于NTEXT并存储LOB中的文本值,并存储指向表中文本的指针 - 这会使性能更差。

简而言之,转到NVARCHAR(4000),只要可以丢失超过8K的字节。