首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HASHBYTES函数

HASHBYTES函数
EN

Stack Overflow用户
提问于 2017-08-06 17:04:52
回答 1查看 175关注 0票数 0

下面的脚本给出了以下错误消息:

“消息8152,级别16,状态10,行10字符串或二进制数据将被截断。”

代码语言:javascript
复制
 select convert(varbinary(max),HASHBYTES('md2',(select [Secteur]
  ,[Hub]
  ,[Group]
  ,[Enterprise]
  ,[Manager]
  ,[BM]
   from [Hubs] for XML auto)))

我提到输入行的最大长度是123字节。

你知道为什么会有这条消息吗?(我使用SQL Server 2014)非常感谢

EN

回答 1

Stack Overflow用户

发布于 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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45530400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档