计算MD5为长字符串

时间:2017-02-15 15:27:13

标签: sql-server hash

当用长字符串调用HASHBYTES时,我正在

OAuth

我正在尝试计算多个字段的MD5哈希,以便我可以比较对象,
反正有吗?

2 个答案:

答案 0 :(得分:1)

假设您使用的是SQL Server 2008或更高版本,请使用CHECKSUM函数。

https://msdn.microsoft.com/en-us/library/ms189788.aspx

  

CHECKSUM在其参数列表上计算一个称为校验和的哈希值。哈希值旨在用于构建哈希索引。如果CHECKSUM的参数是列,并且在计算的CHECKSUM值上构建索引,则结果是哈希索引。这可用于对列进行相等搜索。

     

如果任何列属于不可比数据类型,则CHECKSUM会返回错误。不兼容的数据类型是text,ntext,image,XML和cursor,还有sql_variant,其中任何一种类型都是基类型。

答案 1 :(得分:0)

正如@TimBiegeleisen所说。 SQL Server的HASHBYTES限制为8k字节。

但是,SQL Server 2016及更高版本没有似乎没有此限制。

  

对于SQL Server 2014(12.x)和更早版本,允许的输入值为   限制为8000个字节。   https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql?view=sql-server-2017