这是我想要做的:
我正在尝试模糊数据并创建一个用于文档的工作数据库。我有一个名字列表,我想在表格中混淆。
KEY FIRSTNAME
135 CYNTHIA
181 MARK
186 MARGARET
212 DESIVANITA
506 AMY
606 BRENDA
628 KATHLEEN
629 Johnna
636 TAMARA
652 KATHLEEN
此表有大约50K行。我想知道是否有一种方法可以在不使用循环的情况下混淆名称?
答案 0 :(得分:4)
我建议创建虚假数据而不是混淆真实数据。使用虚假数据,您不可能暴露敏感信息。 Red Gate有一个很好的工具来创建测试数据SQL Data Generator,这使得在给定表模式的情况下使用各种类型的规则生成逼真的虚假数据变得微不足道。
答案 1 :(得分:1)
一种可能性是(假设你不介意重复的名字):
DECLARE @T TABLE (ID INT, FirstNAme VARCHAR(10), newColumn VARCHAR(10))
INSERT INTO @T
( ID, FirstNAme )
SELECT 135 ,'CYNTHIA'
UNION ALL SELECT 181 ,'MARK'
UNION ALL SELECT 186 ,'MARGARET'
UNION ALL SELECT 212 ,'DESIVANITA'
UNION ALL SELECT 506 ,'AMY'
UPDATE @T
SET NewColumn = (SELECT TOP 1 FirstName FROM @T t2 ORDER BY NEWID())
SELECT *
FROM @t
答案 2 :(得分:0)
我猜通过使用cte和row_number()可以完成