字符串或二进制数据将在SELECT语句中被截断

时间:2016-12-19 12:50:14

标签: sql sql-server

我希望得到一个表的连接行值的校验和。因此,当我尝试此查询时,我收到错误:

  

消息8152,级别16,状态10,行1,字符串或二进制数据将是   截短的

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在评论中提供链接)

1 个答案:

答案 0 :(得分:1)

我认为您尝试插入的数据比您定义的数据类型长度更长。此函数convert(varbinary(max))可能与您的数据大小冲突。