gpt4 book ai didi

tsql - SQL hashbytes 更新语句不符合预期

转载 作者:行者123 更新时间:2023-12-02 00:10:48 24 4
gpt4 key购买 nike

我正在尝试使用 hashbytes 命令更新 SQL Server r2 上的列。这是该命令的简化版本:

COMMAND: "UPDATE [tbl] SET [checksum] = HASHBYTES('MD5',[field1])"

问题是,它向所有字段写入这样的奇怪字符:

"∼Iý¸¶C"KéS©c"

但是,如果我进行选择(使用相同的字段):

select HASHBYTES('MD5',[field1]) from [tbl];

它返回一个正确的字符串:

0x9849FDB80C17B64322DA094BE963A963

任何人都知道它为什么会这样做。我试过一个测试数据库,更新命令按预期工作。但它在我们的生产服务器上不起作用。

最佳答案

你得到这个的原因是因为 HASHBYTES 返回二进制数据类型,这不是文本。

使用内置函数 fn_varbintohexstr 可以将二进制数据转换为文本,如下所示:

UPDATE [tbl] SET [checksum] = master.dbo.fn_varbintohexstr(HASHBYTES('MD5',[field1]))

关于tsql - SQL hashbytes 更新语句不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com