データベースを循環させようとしていますが、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