有没有理由不使用ntext并且没有为所有文本输入字段指定最大长度?
答案 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):