在SQL中可以为Nvarchar(max)列计算MD5 HashBytes吗?

时间:2015-08-19 14:18:19

标签: sql-server sql-server-2008 tsql hash md5

我有一个列数据类型为nvarchar(max)的表,该列的数据超过8000个字符。

mytext navarchar(max)

我想计算该列的哈希值,我在MS SQL 2008 / R2中使用以下代码

select HASHBYTES('md5',column_name)

但是我收到了错误,

String or binary data would be truncated.

是否可以在sql查询中的nvarchar(max)字段中计算哈希值。

或者还有其他方法可以做到。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如上所述,允许的输入值限制为8000字节。

尝试:

select master.sys.fn_repl_hash_binary(cast(column_name as varbinary(max)))

对于此操作,您必须禁用FIPS验证的加密算法: http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html