下面的脚本给出了以下错误消息:
“消息8152,级别16,状态10,行10字符串或二进制数据将被截断。”
select convert(varbinary(max),HASHBYTES('md2',(select [Secteur]
,[Hub]
,[Group]
,[Enterprise]
,[Manager]
,[BM]
from [Hubs] for XML auto)))我提到输入行的最大长度是123字节。
你知道为什么会有这条消息吗?(我使用SQL Server 2014)非常感谢
发布于 2017-08-06 21:04:43
在SQL 2014及更早版本中,HASHBYTES的输入限制为8000个字符。它并不局限于SQL 2016+。我怀疑您的查询在转换为XML时超过了8000个字节。
在SQL2014中,对于长输入数据,您可以使用未记录的fn_repl_hash_binary来获取MD5散列(但不是MD2),但我不推荐这样做。它不仅没有文档记录,而且在Azure SQL中根本不起作用。
我相信您将需要在SQL2014中使用CLR函数来计算大型二进制数据的MD2。
https://stackoverflow.com/questions/45530400
复制相似问题