我试图循环浏览我的数据库和 MD5 哈希我的电子邮件地址。这是我厌倦了使用的代码:
update Recipients set MD5Email = CONVERT(VARCHAR(MAX), HASHBYTES( 'md5', NonMd5.EmailAddress ), 2)
from
Recipients INNER JOIN Recipients as NonMd5
on
Recipients.Id = NonMd5.Id
我也试过这个,结果是一样的:
update Recipients set MD5Email = CONVERT(VARCHAR(MAX), HASHBYTES( 'md5', Recipients.EmailAddress ), 2)
from
Recipients
如果我用硬编码字符串替换 NonMd5.EmailAddress,它会正确计算。我不知道出了什么问题。
这是我的表:
CREATE TABLE [dbo].[Recipients] (
[Id] uniqueidentifier NOT NULL DEFAULT (newid()) ,
[EmailAddress] nvarchar(MAX) COLLATE Latin1_General_CI_AS NULL ,
[IsProcessed] bit NOT NULL ,
[MD5Email] nvarchar(80) COLLATE Latin1_General_CI_AS NULL ,
CONSTRAINT [PK__Recipien__3214EC0703317E3D] PRIMARY KEY ([Id])
)
ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
更新:
如果我将电子邮件地址设置为 test@test.com 这是我的结果: 4767DCA4A82B295C59D18097EE7B4070
在上面的代码中将其作为直接值运行,这是我的结果:
b642b4217b34b1e8d3bd915fc65c4452