【问题标题】:Is there a big technical difference between VARBINARY(MAX) and IMAGE data types?VARBINARY(MAX) 和 IMAGE 数据类型之间是否存在很大的技术差异?
【发布时间】:2010-11-06 13:34:31
【问题描述】:

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

  1. VARBINARY(MAX) - 二进制字符串 可变长度可以存储 到 2^31-1 个字节。

  2. IMAGE - 二进制字符串 可变长度高达 2^31-1 (2,147,483,647) 个字节。

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

如果有区别:我们是否必须自定义 ADO.NET 在 SQL Server 中插入和更新图像数据字段的方式?

【问题讨论】:

    标签: image sql-server-2008 ado.net varbinary


    【解决方案1】:

    它们存储相同的数据:目前为止。

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

    不要将image 用于任何新项目:只需在此处搜索人们对imagetext 数据类型的问题,因为功能有限。

    来自 SO 的示例:OneTwo

    【讨论】:

    • VARBINARY(MAX) 的限制:以 FILESTREAM 作为源的列不支持部分更新。 (tekkies.co.uk)
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      它们存储相同的数据:目前为止。

      “图像”已被弃用,并且具有有限的功能和操作集 与它一起工作。 varbinary(max) 可以像更短一样操作 varbinary(文本和 varchar(max) 同上)。

      不要将图像用于任何新项目:只需在此处搜索问题 由于有限,人们使用图像和文本数据类型 功能。

      其实VARBINARY可以存储任何可以转换成字节数组的数据,比如文件,这和IMAGE数据类型使用的过程是一样的,所以从这个角度来看,两个数据类型可以存储相同的数据。 但是VARBINARY 有一个size 属性,而IMAGE 接受任何大小达到数据类型限制,所以当使用IMAGE 数据类型时,您将花费更多资源来存储相同的数据。 在 Microsoft® SQL Server® 中,IMAGE 数据类型确实已被弃用,那么您必须押注VARBINARY 数据类型。

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

      【讨论】:

        【解决方案4】:

        我无意中发现了它们之间的一个区别。您可以将字符串插入图像类型,但不能插入 varbinary。也许这就是 MS 弃用图像类型的原因,因为用字符串设置图像确实没有意义。

        【讨论】:

        • 根据codeproject.com/Articles/128657/How-Do-I-Use-SQL-File-Stream确实可以保存,甚至可以用来测试,也可以直接读取文件中的文字,这可能非常适合测试,所以只要你需要强制转换,我看不出有什么区别,当然你不仅可以用于测试,还可以用于保存基于文本的文章(尽管正确的命名不是“图像”)
        猜你喜欢
        • 2011-09-02
        • 1970-01-01
        • 2011-01-13
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 2011-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多