以下脚本提供以下错误消息:
" Msg 8152,Level 16,State 10,Line 10 字符串或二进制数据将被截断。"
select convert(varbinary(max),HASHBYTES('md2',(select [Secteur]
,[Hub]
,[Group]
,[Enterprise]
,[Manager]
,[BM]
from [Hubs] for XML auto)))
我提到输入行的最大长度是123个字节。
任何想法为什么这条消息? (我使用SQL Server 2014)非常感谢
答案 0 :(得分:1)
HASHBYTES在SQL 2014及更早版本中限制为8000个字符输入。它不受SQL 2016+的限制。我怀疑你转换为XML时的查询超过8000字节。
您可以使用未记录的fn_repl_hash_binary
在sql 2014中获取MD5哈希(但不是MD2)以获取长输入数据,但我不推荐它。它不仅没有文档,而且根本不适用于Azure SQL。
我相信您需要使用CLR函数来计算SQL 2014中的大型二进制数据的MD2。