3

我知道 TEXT、NTEXT 和 IMAGE 已被弃用,最终将从 SQL Server 中删除。

但是,除了这种弃用之外,为什么 VARCHAR(max)、NVARCHAR(max) 和 VARBINARY(max) 数据类型更好?微软为什么选择它们?

我注意到 VARCHAR 和 NVARCHAR 可以与 = 和 GROUP BY 一起使用,而旧类型不能。还有更多好处吗?

4

2 回答 2

6

数据类型已被弃用,因为随着 SQL Server 的进步,不再需要处理与 VARCHAR 或 BINARY 不同的大块文本 (TEXT) 或二进制数据 (IMAGE)。由于存储不再是问题,我们现在可以随心所欲地执行 SUBSTRING( <varchar(max)>, 1234567, 400) ,而在过去,1 MB 似乎很多并且需要特殊处理,例如本文中的函数。

IMAGE 携带与 TEXT 类似的包袱,这需要以特殊的方式存储大小,而不是扩展 VARBINARY 以适应任何一直到 2GB 的内容。

但是,具有专用 BLOB 和 CLOB 的相同原因在内存/存储限制下仍然有效,因此 SQL Server CE 继续具有 IMAGE 类型,并且在这方面不会很快消失。

于 2012-10-02T07:59:39.337 回答
1

因为它们已被弃用或 不会被支持

重要的 ntext 、 text 和 image 数据类型将在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。

相关问题

于 2012-10-02T07:45:27.047 回答