Datentransfer insert/update Verfahren

08/09/2008 - 10:08 von Bert Tschiche | Report spam
Hallo NG,

ich möchte Daten von einer Tabelle in eine andere schieben wobei neue
Datensàtze angefügt werden sollen und vorhandene geupdatet werden sollen.
Mein Frage an euch ist welches eine vernünftiges Verfahren wàre.

Mein jetziger Ansatz ist dieser
1. noch nicht existierende Daten anfügen
insert into tblDestination (ID, TextA, ZahlA) SELECT tblSource.ID,
tblSource.TextA, tblSource.ZahlA FROM tblSource WHERE tblSource.ID not in
(select ID From tblDestination)
2. auf alle Daten nocheinmal ein update machen
UPDATE tblSource INNER JOIN tblDestination ON tblSource.ID =
tblDestination.ID SET tblDestination.ID = [tblSource].[ID],
tblDestination.TextA = [tblSource].[TextA], tblDestination.ZahlA =
[tblSource].[ZahlA];

Gibt es da eigentlich einen besseren Ansatz? DTS?

Details:
Ich verwende einen SQLServer2000
Source und Destination sind in der gleichen Datenbank
in tblDestination sind Zusatzfelder deren Inhalt auch nicht verloren gehen
darf.
Es sind zur Zeit ca. 10000 Datensàtze mit circa 150 Feldern.
Event. wird das spàter mal umgestellt dass Source und Destination in
verschiedenen Datendanken sind.

Viele Grüsse Bert Tschiche
 

Lesen sie die antworten

#1 Christoph Ingenhaag
08/09/2008 - 10:45 | Warnen spam
Hi Bert,

wieviele DS sind in der Quelle?
Wie exklusiv ist der Zugriff auf die Daten möglich (arbeiten da welche mit
den Daten oder làuft das Datenladen allein...?)

Vg
Christoph

"Bert Tschiche" wrote:

Hallo NG,

ich möchte Daten von einer Tabelle in eine andere schieben wobei neue
Datensàtze angefügt werden sollen und vorhandene geupdatet werden sollen.
Mein Frage an euch ist welches eine vernünftiges Verfahren wàre.

Mein jetziger Ansatz ist dieser
1. noch nicht existierende Daten anfügen
insert into tblDestination (ID, TextA, ZahlA) SELECT tblSource.ID,
tblSource.TextA, tblSource.ZahlA FROM tblSource WHERE tblSource.ID not in
(select ID From tblDestination)
2. auf alle Daten nocheinmal ein update machen
UPDATE tblSource INNER JOIN tblDestination ON tblSource.ID =
tblDestination.ID SET tblDestination.ID = [tblSource].[ID],
tblDestination.TextA = [tblSource].[TextA], tblDestination.ZahlA =
[tblSource].[ZahlA];

Gibt es da eigentlich einen besseren Ansatz? DTS?

Details:
Ich verwende einen SQLServer2000
Source und Destination sind in der gleichen Datenbank
in tblDestination sind Zusatzfelder deren Inhalt auch nicht verloren gehen
darf.
Es sind zur Zeit ca. 10000 Datensàtze mit circa 150 Feldern.
Event. wird das spàter mal umgestellt dass Source und Destination in
verschiedenen Datendanken sind.

Viele Grüsse Bert Tschiche

Ähnliche fragen