Verschleiern / Maske / Scramble persönlichen Informationen

Ich bin auf der Suche nach einheimischer Art zu klettern, Produktions-Daten für den Einsatz in Entwicklung und test. Ich habe gebaut, ein paar Skripts, die zufällig die soziale Sicherheit zahlen, shift Geburtsdaten, verschlüsselt E-Mails, etc. Aber ich habe auch gegen eine Wand versuchen zu klettern, Kunden-Namen. Ich will, dass real-Namen, so können wir noch verwenden, oder suchen, so dass zufällige Buchstaben-generation ist out. Was ich bisher versucht habe ist der Aufbau einer temp-Tabelle aller letzten Namen in der Tabelle dann aktualisieren Sie die Tabelle "Kunde" mit einer zufälligen Auswahl aus der temp-Tabelle. Wie diese:

DECLARE @Names TABLE (Id int IDENTITY(1,1),[Name] varchar(100))

/* Scramble the last names (randomly pick another last name) */
INSERT @Names SELECT LastName FROM Customer ORDER BY NEWID();
WITH [Customer ORDERED BY ROWID] AS
(SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS ROWID, LastName FROM Customer)
UPDATE [Customer ORDERED BY ROWID] SET LastName=(SELECT [Name] FROM @Names WHERE ROWID=Id)

Dies funktionierte gut im test, aber komplett abbricht Umgang mit größeren Datenmengen (>20 Minuten für 40K Zeilen)

Alle, die Fragen, wie würden Sie krabbeln Kunden-Namen, während echte Namen und das Gewicht der Produktionsdaten?

UPDATE: Nie versagt, Sie versuchen, all die Informationen in der post, und Sie vergessen, etwas wichtiges. Diese Daten werden auch verwendet, in der unsere sales & demo-Umgebungen, die öffentlich zugänglich sind. Einige der Antworten sind das, was ich bin versucht zu tun, auf 'Schalter' den Namen, aber meine Frage ist, buchstäblich, wie Sie code in T-SQL?

Schreibe einen Kommentar