首页 > 解决方案 > 如何在 SQL 表中复制计算的哈希值?

问题描述

我们在表中有一个列是计算的 HASH:

在此处输入图像描述

我的问题是,我如何复制该计算值以便加入它?例如,给定这一行:

在此处输入图像描述

我正在尝试这个:

select (CONVERT([uniqueidentifier],hashbytes('MD2',concat('ABC-123','en'))));

ABC-123的值在哪里Phrase。但这给了我一个非常不同的哈希值:

A549AB46-7111-6833-F5A9-C0102F63E822

我假设是因为它不使用相同的uniqueidentifier

我需要做什么才能复制原始计算和存储的哈希值?

标签: sqlsql-serverazure-sql-database

解决方案


您必须散列相同的数据类型。因此,将目标短语转换为nvarchar(max)散列之前,它应该匹配。例如

CONVERT([uniqueidentifier],hashbytes('MD2',cast(concat('ABC-123' ,'en') as nvarchar(max))))

推荐阅读