【发布时间】:2011-12-02 20:49:49
【问题描述】:
有什么理由不使用 ntext 并且不为所有文本输入字段指定最大长度?
【问题讨论】:
-
除了使用不推荐使用的类型之外,这里的大多数答案仍然适用。 Are there any disadvantages to always using nvarchar(MAX)?
标签: sql-server
有什么理由不使用 ntext 并且不为所有文本输入字段指定最大长度?
【问题讨论】:
标签: sql-server
除了它是一种已弃用的类型之外,添加它的另一个原因是 ntext 不能用作 UNION、INTERSECT 或 EXCEPT 运算符的操作数。
您将收到以下错误消息
数据类型 ntext 不能用作 UNION 的操作数, INTERSECT 或 EXCEPT 运算符,因为它不可比较。
我建议停止使用 TEXT,因为它已过时并将其转换为 NVARCHAR(MAX):
【讨论】:
不使用 ntext 的一个原因是它将从 SQL Server 的未来版本中删除。
http://msdn.microsoft.com/en-us/library/ms187993.aspx
您应该使用nvarchar(max) 而不是ntext。
我不会将nvarchar(max) 用于所有文本字段。我喜欢对存储的内容和数量进行一些控制。例如,如果您知道需要多少文本,那么构建需要呈现信息的客户端会容易得多。此外,想要做坏事的用户可以在邮政编码字段中填写三部曲 Hitch Hikers Guide to the Galaxy 的所有五本书。并不是说这些书不好,但它不应该是邮政编码的一部分。
【讨论】:
其中一个原因与它的存储方式有关(尽管这取决于您存储的数量),并且部分与使用某些具有“文本”类型数据类型的函数的限制有关。
此外,如果您担心长度,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
【讨论】: