【问题标题】:SQL Server HASHBYTES different valuesSQL Server HASHBYTES 不同的值
【发布时间】:2021-01-05 13:26:21
【问题描述】:

我想在 SQL Server 2019 中获取 MATKHAU 的 SHA1 哈希,所以我使用 HASHBYTES。但是正如您所见,SELECT HASHBYTES 的值与我使用存储过程时的值不同。它出什么问题了? (在MATKHAU中也是一样的输入)

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    数据类型很重要:

    SELECT HASHBYTES('SHA1', '123');   -- here VARCHAR
    vs
    SELECT HASHBYTES('SHA1', N'123');  -- here NVARCHAR
    

    存储过程将参数作为NVARCHAR,这在向EXEC提供参数时会导致隐式转换。

    db<>fiddle demo

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2016-08-24
    相关资源
    最近更新 更多