是否有任何理由不对所有文本字段使用ntext

时间:2011-10-07 09:15:47

标签: sql-server

有没有理由不使用ntext并且没有为所有文本输入字段指定最大长度?

3 个答案:

答案 0 :(得分:5)

不使用ntext的一个原因是它将从SQL Server的未来版本中删除。

http://msdn.microsoft.com/en-us/library/ms187993.aspx

您应该使用nvarchar(max)代替ntext

我不会将nvarchar(max)用于所有文本字段。我喜欢控制存储的内容和数量。例如,如果您知道要预期多少文本,那么构建需要提供信息的客户端要容易得多。此外,想要做坏事的用户可以填写一个邮政编码字段,其中包含银河三部曲Hitch Hikers Guide的所有五本书。并不是说这些书很糟糕,但它不应该是邮政编码的一部分。

答案 1 :(得分:0)

一个原因是它的存储方式(虽然这取决于你存储了多少),也部分地限制了使用'text'类型数据类型的某些函数。

此外,如果您担心长度,那么nvarchar(max)是目前使用的推荐数据类型。

请点击此处了解更多信息:

SQL Server Text type vs. varchar data type

http://geekswithblogs.net/johnsperfblog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx

答案 2 :(得分:0)

除了它是折旧类型之外,另外一个原因是ntext不能用作UNION,INTERSECT或EXCEPT运算符的操作数。

您将收到以下错误消息

  

数据类型ntext不能用作UNION的操作数,   INTERSECT或EXCEPT运算符,因为它不具有可比性。

我建议停止使用TEXT,因为它已过时并将其转换为NVARCHAR(MAX):

Reference