sql - 如何在 SQL 表中复制计算的哈希值?
问题描述
我们在表中有一个列是计算的 HASH:
我的问题是,我如何复制该计算值以便加入它?例如,给定这一行:
我正在尝试这个:
select (CONVERT([uniqueidentifier],hashbytes('MD2',concat('ABC-123','en'))));
ABC-123
的值在哪里Phrase
。但这给了我一个非常不同的哈希值:
A549AB46-7111-6833-F5A9-C0102F63E822
我假设是因为它不使用相同的uniqueidentifier
?
我需要做什么才能复制原始计算和存储的哈希值?
解决方案
您必须散列相同的数据类型。因此,将目标短语转换为nvarchar(max)
散列之前,它应该匹配。例如
CONVERT([uniqueidentifier],hashbytes('MD2',cast(concat('ABC-123' ,'en') as nvarchar(max))))
推荐阅读
- swift - Swift - Mac OS - TIFF 图像
- nginx - ngix.conf 中 nginx 重写的错误结果
- rust - 替换结构字段时“无法移出借用的内容”
- nginx - 从一台主机重定向到另一台主机
- python-2.7 - Python:raw_input 和模板字符串语法错误
- ios - Cordova deviceReady 未在 iOS 上触发
- monitoring - 如何使用 telegraf 监控远程系统指标?
- android - Loopj AsyncHttpClient JsonHttpResponseHandler 没有收到超时异常
- java - 如何配置基于 Maven 的 java 模块项目以在 Eclipse 中运行单元测试?
- python - 尝试使用mail_thread时Odoo继承错误