CHECKSUM_AGG(checksum())返回星号(**********)

时间:2017-07-26 08:35:34

标签: sql-server hash hashcode checksum

我正在打电话

id int ,
tableid int,
seid int,
ptid int,
VISID NVARCHAR(50),
Tname AS SYSNAME ,
ColumnValue NVARCHAR(50),
ColumnKey NVARCHAR(50),
@HashValue NVARCHAR(50) OUTPUT

select @HashValue = CHECKSUM_AGG(checksum(id,tableid, seid, ptid, VISID, Tname, ColumnKey, ColumnValue))  from #FDATA 

#FDATA包含:

  

17 3028 100 100003 SCRN form.LG_AE 320 InvInit

     

17 3028 100 100003 SCRN form.LG_AE 321 AuthIn

     

.........(总共6行,数据类似,没有空值)

它返回**********

但是#FDATA包含:

  

17 3019 101 101001 SCRN表格.LG_AE 320 InvInit

     

17 3019 101 101001 SCRN表格.LG_AE 321 AUTHIn

     

......(总共65行,数据类似,没有空值)

返回预期的整数

1 个答案:

答案 0 :(得分:0)

根据this和注释,函数STR返回*,因为存储在@HashValue变量中的数字超过了指定的长度(默认值为10)。而不是STR使用CAST,例如:

PRINT CAST(@HashValue as varchar(20))

或只打印值而不进行投射:

PRINT @HashValue

或使用函数STR,但使用长度参数:

PRINT STR(@HashValue,20)