SQL Server - Daten verfremden

18/03/2010 - 10:21 von Patrick Pohlmann | Report spam
Hallo Zusammen,

ich muss für eine Demo Umgebung Daten in einer Datenbank verfremden.

Hierzu drei Fragen bzw. Fàlle:

1. Ganze Zahlen

Ich habe ein Tabellenfeld in dem steht je Datensatz eine ganze Zahl
unterschiedlicher Lànger. Bspw.:

4678932
4711
335786
2018
015748764
...

Ich möchte nun dies Zahlen durch neue Zahlen mit jeweils der gleichen anzahl
an stellen ersetzen.

2. Teilbereiche einer Zahl (Telefonnummer)

Ich habe ein Tabellenfeld in dem ein Telefonnummer steht. Hier möchte ich
die ersten 4 Zahlen lassen wie sie sind und für den Rest Zufallsziffern der
selben lànge haben. Bsp:

0170124365
017154667467
0172564864
...

3. Namen
Ich habe eine Tabelle mit Feldern für Name; Vorname; Titel. Hier möchte ich
gerne entweder ganz neue Namen und Vornamen haben. Oder alternativ einfach
die jeweiligen Vor- und Nachnamen wild durcheinander würfen, so dass dann
auch wieder Zufallsnamen entstehen.

Wàre total klasse. Wenn mir hier jemand helfen könnte.

Viele Grüße

Patrick
 

Lesen sie die antworten

#1 Christoph Ingenhaag
18/03/2010 - 12:56 | Warnen spam
Hallo Patrick!

"Patrick Pohlmann" schrieb im Newsbeitrag
news:
Hallo Zusammen,

ich muss für eine Demo Umgebung Daten in einer Datenbank verfremden.

Hierzu drei Fragen bzw. Fàlle:

1. Ganze Zahlen

Ich habe ein Tabellenfeld in dem steht je Datensatz eine ganze Zahl
unterschiedlicher Lànger. Bspw.:

4678932
4711
335786
2018
015748764
...

Ich möchte nun dies Zahlen durch neue Zahlen mit jeweils der gleichen
anzahl an stellen ersetzen.

2. Teilbereiche einer Zahl (Telefonnummer)

Ich habe ein Tabellenfeld in dem ein Telefonnummer steht. Hier möchte ich
die ersten 4 Zahlen lassen wie sie sind und für den Rest Zufallsziffern
der selben lànge haben. Bsp:

0170124365
017154667467
0172564864
...

3. Namen
Ich habe eine Tabelle mit Feldern für Name; Vorname; Titel. Hier möchte
ich gerne entweder ganz neue Namen und Vornamen haben. Oder alternativ
einfach die jeweiligen Vor- und Nachnamen wild durcheinander würfen, so
dass dann auch wieder Zufallsnamen entstehen.

Wàre total klasse. Wenn mir hier jemand helfen könnte.

Viele Grüße

Patrick





declare @zahl table(zahl varchar(20))
insert into @zahl
select 4678932 union all
select 4711 union all
select 335786 union all
select 2018 union all
select 015748764;

select zahl, left(cast(abs(checksum(newid())) as varchar(20)), len(zahl))
from @zahl;

declare @tel table(tel varchar(20))
insert into @tel
select 0170124365 union all
select 017154667467 union all
select 0172564864;

select
tel,
left(tel, 4) + left(cast(abs(checksum(newid())) as varchar(20)),
abs(len(tel) - 4))
from @tel;

declare @name table(vorname varchar(50), name varchar(50))
insert into @name
select 'Klaus', 'Meier' union all
select 'Bàrbel', 'Schultz' union all
select 'Monika', 'Spitz' union all
select 'Erika', 'Kühne zu Fedlers' union all
select 'Ralf', 'Bruns' union all
select 'Walter', 'Worms' union all
select 'Erni', 'Bert' union all
select 'Susi', 'Strolch';

select
vorname,
name
from
(
select
row_number() over(order by (newid())) rnr,
vorname
from @name
) v
inner join
(
select
row_number() over(order by (newid())) rnr,
name
from @name
) n
on
v.rnr = n.rnr

Für das Update der Originaltabellen würde ich analog zum Testskript
temporàre Tabellen mit den Zufallsdaten und dem PK der Quelltabelle füllen
und auf dieser Grundlage dann das Update durchführen.

Viele Grüße
Christoph

Ähnliche fragen