2016-12-19 53 views
0

我想要一个表的连接行值的校验和。所以,当我尝试此查询,我收到错误消息:SELECT语句会截断字符串或​​二进制数据

Msg 8152, Level 16, State 10, Line 1, String or binary data would be truncated

SELECT TOP 10000 A.AR_Ref, 
(SELECT HASHBYTES('md5',convert(varbinary(max), 
     (SELECT [AR_Ref],[AC_Categorie],[AC_PrixVen],[AC_Coef],[AC_PrixTTC], 
       [AC_Arrondi],[AC_QteMont],[EG_Champ],[AC_PrixDev], 
       [AC_Devise],[CT_Num],[AC_Remise],[AC_Calcul],[AC_TypeRem], 
       [AC_RefClient],[AC_CoefNouv],[AC_PrixVenNouv], 
       [AC_PrixDevNouv],[AC_RemiseNouv],[AC_DateApplication] 
     FROM F_ARTCLIENT AC 
     WHERE AC.AR_Ref = A.AR_Ref AND AC_Categorie BETWEEN 1 AND 14 
     FOR XML AUTO)))) AS cscli 
FROM F_ARTICLE A 

编辑:我可以通过使用特殊的功能(链接由Giorgos Betsos在评论中提供)

+0

也检查所有字段的数据类型和比较值。 – Mansoor

+2

请看看[this](http://stackoverflow.com/questions/3717977/sql-server-2008-and-hashbytes)的问题。如果它回答你的问题,那么这个帖子应该被标记为重复。 –

+0

请添加表格DDL –

回答

1

我想解决我的probleme您尝试插入数据的时间长于您定义的数据类型长度。此函数convert(varbinary(max))可能与您的数据大小冲突。

相关问题