使用下表定义:
CREATE TABLE dbo.Test
(
[ID] INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
[Code] CHAR(10) NOT NULL UNIQUE NONCLUSTERED
);
为了对数据集进行去标识化,我需要随机化代码值。
我想保留 ID 值,以便其他表也不需要更改。
我尝试了以下方法:
SELECT t.ID, c.Code
FROM dbo.Test AS t
CROSS APPLY (SELECT TOP(1) v.Code
FROM dbo.Test AS v
WHERE v.Code <> t.Code
ORDER BY NEWID()) AS c
问题是相同的唯一键值将分配给多个记录。
关于如何解决这个问题的任何建议?