VARBINARY(MAX)和IMAGE数据类型之间有很大的技术差异吗?

Jun*_*r M 16 ado.net image varbinary sql-server-2008

我在互联网上阅读有关SQL Server数据类型的这些陈述:

  1. VARBINARY(MAX) - 具有可变长度的二进制字符串可以存储最多2 ^ 31-1个字节.

  2. IMAGE - 二进制字符串,可变长度最大为2 ^ 31-1(2,147,483,647)字节.

VARBINARY(MAX)IMAGE数据类型之间是否存在非常大的技术差异?

如果存在差异:我们是否必须自定义ADO.NET如何在SQL Server中插入和更新图像数据字段?

gbn*_*gbn 19

它们存储相同的数据:这就是它的存在.

" image"已被弃用,并且具有一组有限的功能和操作.varbinary(max)可以像更短的操作varbinary(同上textvarchar(max)).

不要image用于任何新项目:因为功能有限,只需在此搜索民间问题imagetext数据类型.

来自SO的例子:,


Kla*_*sen 7

我认为从技术上讲它们是相似的,但重要的是要从文档中注意以下内容:

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

固定和可变长度数据类型,用于存储大型非Unicode和Unicode字符以及>二进制数据.Unicode数据使用UNICODE UCS-2字符集.


小智 5

\n

它们存储相同的数据:仅此而已。

\n\n

“image”已被弃用,并且具有一组有限的与其配合使用的功能和操作。varbinary(max) 可以像较短\n varbinary 一样进行操作(文本和 varchar(max) 也是如此)。

\n\n

不要在任何新项目中使用图像:只需在此处搜索人们因功能有限而遇到的图像和文本数据类型问题。

\n
\n\n

事实上,VARBINARY可以存储任何可以转换为字节数组的数据,例如文件,这与数据类型使用的过程相同IMAGE,因此,从这一点来看,两种数据类型都可以存储相同的数据。\n但是VARBINARY有一个 size 属性,同时IMAGE接受不超过数据类型限制的任何大小,因此在使用IMAGE数据类型时,您将花费更多的资源来存储相同的数据。\n在Microsoft\xc2\xae SQL Server\xc2\xae 中IMAGE数据类型确实已弃用,那么您必须在VARBINARY数据类型上下注。

\n\n

但要小心:Microsoft\xc2\xae SQL Server\xc2\xae CE\xc2\xae(包括最新的4.0版本)仍在使用IMAGE数据类型,并且这种数据类型可能不会这么快“消失”,因为在Compact Edition版本中,这种数据类型比任何其他数据类型都更能快速存储文件。

\n