我有一个包含列xxANSI和xxMD5的表TBLxx,我将在下面使用它们来计算xxANSI的校验和MD5
update i
set [xxMD5] = HASHBYTES ('MD5', [xxANSI])
from TBLxx i我在MD5列中得到的结果是一组特殊字符,例如“#8U3HASHBYTES”,而如果我在应用š函数的同时对该列进行选择,我会得到一个值"0x233855339A5D50CD0CDB279BF782A4C4“。
select top 1 xxANSI, xxMD5, hashbytes('MD5', xxMD5)
from TBLxx
"saco_other_test", "’3è@GÔ¦l
VŒ$t>", "0x169233E8401947D4A66C0D568C24743E"(在xxMD5列的值中有一个换行符,这是上面换行的原因)
有人知道为什么会这样吗?我怎样才能避免这种情况?我希望在我的表列中有"0x169233E8401947D4A66C0D568C24743E“这样的值。
提前感谢
发布于 2013-04-22 16:13:56
我认为您的问题可能是您正在将hashbytes结果插入到VARCHAR列。您应该使用BINARY类型来存储哈希字节结果。
看到不同点:
select hashbytes('MD5','saco_other_test')
select cast(hashbytes('MD5','saco_other_test') as varchar(255))https://stackoverflow.com/questions/16142221
复制相似问题