使用虚拟数据SQL Query更新敏感列

时间:2013-08-21 15:31:07

标签: sql sql-server

我有一个包含姓名和姓氏的表格,需要随机数据进行更改,但可用于测试目的。所以我在另一个数据库中创建了另一个带有随机前缀和姓氏的表。我想用我创建的随机前缀和姓氏更新测试数据库。另外,我想重新安排更新的名称以防万一,所以如果你明白我的意思,我不希望它按顺序更新。

我收到了这个查询

update DB1.table 
set Forename = (???? from DB2.table (Forename)??????)
where Forename is not null

1 个答案:

答案 0 :(得分:2)

Declare @Id int

DECLARE db_cursor CURSOR FOR  
SELECT Id 
FROM DB1.dbo.table 
WHERE Forename is not null

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @id   

WHILE @@FETCH_STATUS = 0   
BEGIN   
        update DB1.dbo.table 
        set Forename = (select top(1) Forename from DB2.dbo.table order by newid())
        where Id = @id

       FETCH NEXT FROM db_cursor INTO @id   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

将使用table2中的随机forename从table1更新每个forename

然后你可以为姓氏做同样的事情,这会混淆表2中的姓/姓,我假设你是最后一行的意思......