我有一个名为"Subject“的sql server表列。
UPDATE mytable SET SUBJECT=HASHBYTES('SHA1',SUBJECT)from mytable 上面的查询在subject列中散列整行..。
0x0431A163506AE958501A2AA30FA12513C3CE599A
0x0431A163506AE958501A2AA30FA12513C3CE599A
0x0431A163506AE958501A2AA30FA12513C3CE599A对于subject列中的每个记录,输出行值都是相同的。
我需要读取每一行,并对其进行散列和更新,而不是基于颜色的散列。我怎么能这么做。
0x0431A163506AE958501A2AA30FA12513C3CE599A
0x0431A163506AE958501A2AA30FA12513C3CE593D
0x0431A163506AE958501A2AA30FA12513C3CE592F发布于 2014-02-26 03:56:38
这假设您的主键名为subjectID。
DECLARE @currentKEY INT
DECLARE @maxKey INT
SELECT @currentKey = MIN(subjectID), @maxKey = MAX(subjectID) FROM mytable
WHILE @currentKey <= @maxKEY
BEGIN
UPDATE myTable
SET SUBJECT = HASHBYTES('SHA1', SUBJECT)
WHERE subjectID = @currentKEY
SELECT @currentKey = MIN(subjectID) FROM mytable WHERE subjectID > @currentKey
END如果你想把它作为一个光标来做,我也可以教你怎么做。
https://stackoverflow.com/questions/22031019
复制相似问题