Sql-Server
通過 SQL 查詢/批處理清理名稱
我們有敏感資訊(人名),我們正在尋找一個腳本來“清理”這些人名。有沒有人想出一個好的算法來做到這一點,而不是僅僅讓所有的姓氏都變成“TEST”之類的?
謝謝。
由於 NPI(非公開資訊)的原因,我不得不在以前的雇主那裡這樣做。最終在腳本中打亂了欄位,因為名字/姓氏對不是 NPI,除非它與其他東西相關聯。
這是腳本的粗略版本。調味。此外,這假設您在不同的欄位中有名字和姓氏。
CREATE TABLE #RandomData ( DataID int not null, ID int not null, FirstName varchar(50), LastName varchar(50) ) INSERT INTO #RandomData (ID, DataID) SELECT ROW_NUMBER() OVER (ORDER BY NEWID()), DataId FROM DataTable UPDATE r SET r.FirstName = x.FirstName FROM #RandomData r INNER JOIN ( SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS ID, FirstName FROM DataTable ) x ON x.ID = r.ID UPDATE r SET r.LastName = x.LastName FROM #RandomData r INNER JOIN ( SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS ID, LastName FROM DataTable ) x ON x.ID = r.ID CREATE CLUSTERED INDEX PK_RandomData ON #RandomData ( DataID asc ) ALTER TABLE DataTable DISABLE TRIGGER ALL UPDATE dt SET dt.FirstName = r.FirstName, dt.LastName = r.LastName FROM DataTable dt INNER JOIN #RandomData r ON dt.DataId = r.DataId ALTER TABLE DataTable ENABLE TRIGGER ALL DROP TABLE #RandomData