【问题标题】:VarBinary vs Image SQL Server Data Type to Store Binary Data?VarBinary vs Image SQL Server 数据类型来存储二进制数据?
【发布时间】:2017-04-10 14:46:25
【问题描述】:

我需要将二进制文件存储到 SQL Server 数据库。 Varbinary 和 Image 哪种数据类型更好?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    由于图像已被弃用,您应该使用 varbinary。

    Microsoft (感谢@Christopher 的链接)

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

    用于存储大型非 Unicode 和 Unicode 字符和二进制数据。 Unicode 数据使用 UNICODE UCS-2 字符集。

    【讨论】:

    • @cmsjr:可能是因为正如微软所说:“图像数据类型将在 Microsoft SQL Server 的未来版本中被删除。”
    • @Ehsan 我只能假设您不熟悉已弃用的术语。一般来说,当你说某些东西被弃用时,你是在说它不应该被使用,因为它将来会被删除。所以我的帖子和你在评论中发表的引述本质上是一回事。
    • 别担心,你提出了一个好观点。我会更新措辞。
    • 我不会将此称为“仅链接”答案。我将此称为“对一个问题的简洁而正确的答案,其中包含一些对那些倾向于了解更多信息的人有用的链接”答案。
    • 我会坦率地告诉您,我不愿意进行编辑,因为您以冒犯和威胁的语气接近它。也许你无意粗鲁,但对我来说,你似乎是这样。粗鲁常常会导致人们对其他好的想法不屑一顾。我按照您的建议改进了内容,但我也希望您考虑一下如何提出您的建议。
    【解决方案2】:

    varbinary(max) 是可行的方法(在 SQL Server 2005 中引入)

    【讨论】:

      【解决方案3】:

      还有相当漂亮的FileStream,在 SQL Server 2008 中引入。

      【讨论】:

      • 漂亮:外观聪明
      • '相当漂亮'在普通白话中具有更一般的含义(不仅仅是'漂亮')......我认为最恰当。
      • 这个问题是关于列格式的,FileStream 只是一种存储行为。 Filestream 是通过使用varbinary(max) 并更改您的 sql server 实例来实现的。
      【解决方案4】:

      https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

      图片

      从 0 到 2^31-1 (2,147,483,647) 的可变长度二进制数据 字节。仍然支持使用图像数据类型,但请注意:

      https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

      varbinary [ ( n | max) ]

      可变长度二进制数据。 n 可以是 1 到 8,000 之间的值。 max 表示最大存储 大小为 2^31-1 字节。存储大小是实际长度 输入的数据 + 2 个字节。输入的数据可以是 0 字节 长度。 varbinary 的 ANSI SQL 同义词是二进制变量。

      所以两者的大小相同(2GB)。但请注意:

      https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version-of-sql-server

      虽然“图像”数据类型的结尾仍未确定,但您应该使用“未来”证明等价物。

      但您必须问自己:为什么将 BLOBS 存储在列中?

      https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

      【讨论】:

        猜你喜欢
        • 2011-03-17
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        • 2016-04-20
        • 1970-01-01
        • 1970-01-01
        • 2015-06-18
        • 1970-01-01
        相关资源
        最近更新 更多