sql-server - SQL Server 中图像列的 MD5 总和

标签 sql-server sql-server-2008 tsql

如何在 SQL Server 中计算图像列的校验和(无论是 MD5 还是其他任何内容)?即类似的东西

SELECT HASHBYTES('md5', d.data)
FROM ATTACHMENTDATA D

8116 Argument data type image is invalid for argument 2 of hashbytes function



试:
SELECT HASHBYTES('md5', CONVERT(nvarchar(4000), d.data))
FROM ATTACHMENTDATA D

结果是:

529 Explicit conversion from data type image to nvarchar is not allowed



如果这很重要,我使用 Microsoft SQL Server 10.50.4000 (SQL Server 2008 R2)

最佳答案

将数据列转换为 VARBINARY :

SELECT HASHBYTES('md5', CAST(d.data AS VARBINARY(MAX)))
FROM ATTACHMENTDATA D
MD5弱哈希算法使用 SHA1 , SHA2_256SHA2_512反而。

另请注意:IMAGE数据类型已弃用。

关于sql-server - SQL Server 中图像列的 MD5 总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256722/

相关文章:

IS NULL 时的 SQL Server Case 语句

mysql - Sql Server 到 MySql 数据迁移

java - 尝试通过 Eclipse 连接到 Sql 服务器(我认为找不到驱动程序)

java - Sql Server数据库中的uniqueidentifier - 如何在Java环境中生成?

c# - 插入带有参数的多行 Sql Server

tsql - 将存储过程的输出插入临时表

用于复杂逻辑的 SQL 查询 (pl/sql)

sql-server-2005 - 是 T-SQL 存储过程执行 'atomic' 吗?

sql-server - T-SQL 使用变量从 View 中选择速度要慢得多

sql - 将 XML 插入 SQL Server 表