【问题标题】:Is there any reason not to use ntext for all text fields是否有任何理由不对所有文本字段使用 ntext
【发布时间】:2011-12-02 20:49:49
【问题描述】:

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

【问题讨论】:

标签: sql-server


【解决方案1】:

除了它是一种已弃用的类型之外,添加它的另一个原因是 ntext 不能用作 UNION、INTERSECT 或 EXCEPT 运算符的操作数。

您将收到以下错误消息

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

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

Reference

【讨论】:

    【解决方案2】:

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

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

    您应该使用nvarchar(max) 而不是ntext

    我不会将nvarchar(max) 用于所有文本字段。我喜欢对存储的内容和数量进行一些控制。例如,如果您知道需要多少文本,那么构建需要呈现信息的客户端会容易得多。此外,想要做坏事的用户可以在邮政编码字段中填写三部曲 Hitch Hikers Guide to the Galaxy 的所有五本书。并不是说这些书不好,但它不应该是邮政编码的一部分。

    【讨论】:

      【解决方案3】:

      其中一个原因与它的存储方式有关(尽管这取决于您存储的数量),并且部分与使用某些具有“文本”类型数据类型的函数的限制有关。

      此外,如果您担心长度,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

      【讨论】:

        猜你喜欢
        • 2011-06-09
        • 1970-01-01
        • 2010-12-31
        • 2021-06-03
        • 1970-01-01
        • 2010-09-07
        • 2013-07-28
        • 1970-01-01
        • 2011-04-16
        相关资源
        最近更新 更多