Sql 使用VARCHAR(max)、NVARCHAR(max)和VARBINARY(max)而不是TEXT、NTEXT和IMAGE有什么好处?

Sql 使用VARCHAR(max)、NVARCHAR(max)和VARBINARY(max)而不是TEXT、NTEXT和IMAGE有什么好处?,sql,sql-server,database,deprecated,sql-server-2012,Sql,Sql Server,Database,Deprecated,Sql Server 2012,我知道文本、NTEXT和图像已被弃用,最终将从SQL Server中删除 但是,除了这种不推荐之外,为什么VARCHAR(max)、NVARCHAR(max)和VARBINARY(max)数据类型更好呢?为什么微软选择了它们 我注意到VARCHAR和NVARCHAR可以与=和groupby一起使用,而旧类型不能。还有其他好处吗?因为它们不推荐使用或 重要信息未来版本的Microsoft SQL Server中将删除ntext、text和image数据类型。避免使用这些数据类型 在新的开发工作中,

我知道文本、NTEXT和图像已被弃用,最终将从SQL Server中删除

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


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

因为它们不推荐使用或

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

相关问题


数据类型已被弃用,因为随着SQL Server的发展,不再需要处理与VARCHAR或binary不同的大块文本(文本)或二进制数据(图像)。随着存储不再是一个真正的问题,我们现在可以对您的心内容执行子字符串(
,1234567400),而在过去,1MB似乎太多,需要特殊处理,例如本文档中的函数

图像承载着与文本相似的负担,这需要以一种特殊的方式存储大小,而不是将VARBINARY扩展到2GB


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

是的,但是,除了弃用之外,为什么新的数据类型更好?除了不赞成之外…@JohnAssymptoth还有一个事实,那就是如果有一天你开始使用它们,你将不得不迁移,而不是从一开始就正确地迁移?我不确定我是否遵循了你的逻辑:-)不,他们根本没有贬值。但是它们已经被弃用了,因为它们携带着传统的包袱,比如必须使用TEXTPTR、WRITETEXT等来处理N/text,而不仅仅是
=
。几乎没有任何字符串函数可用于
文本
字段,而且新的数据类型更易于使用。e、 g,要对文本字段进行替换,需要使用
TEXTPTR
s。对于
varchar(max)
您只需调用
REPLACE
潜在重复:您希望从这个问题中获得什么?您可以选择“与类似的、非max数据类型一致的数据类型”或“Microsoft大声叫嚷不要使用的数据类型”。你实际上打算使用哪种类型?@Damien_不信者:我想知道还有什么其他优势。文本等不会立即停止,即使在下一个SQL Server中也不会,因此立即转换数千列真的值得吗?还是可以等一下?我在这类问题中看到了很多见解。