Datenabgleich

26/01/2009 - 09:51 von Volker Strähle | Report spam
Guten Morgen,

ich stehe vor dem Problem Artikeldaten zwischen 2 Datenbanken abgleichen zu
müssen. Leider ist die Datenstruktur nicht gleich. Zu allem Überfluß ist die
MWSt. einmal in der Artikeltabelle beim anderen System mit der Warengruppe
gekoppelt. Wie löse ich das denn am effektivsten?

Eine Tabelle zeilenweise zu durchlaufen ist ja nicht ganz so optimal. Wie
ist es die Daten aus dem einen System in eine temporàre Tabelle mit der
Datenstruktur des anderen Systems zu bringen und dann zu vergleichen? Besser
die Datasets vergleichen oder im SQL-Server?

Danke


Volker
 

Lesen sie die antworten

#1 Elmar Boye
26/01/2009 - 21:08 | Warnen spam
Hallo Volker,

"Volker Stràhle" schrieb ...
ich stehe vor dem Problem Artikeldaten zwischen 2 Datenbanken abgleichen zu müssen. Leider ist die Datenstruktur nicht gleich. Zu
allem Überfluß ist die MWSt. einmal in der Artikeltabelle beim anderen System mit der Warengruppe gekoppelt. Wie löse ich das denn
am effektivsten?



Effektiver ist i. a. via SQL.

Um z. B. die MWSt in beiden zu vergleichen, reicht in etwa

SELECT a.ArtikelNr, wg.MWSt
FROM dbo.Artikel AS a
INNER JOIN dbo.Warengruppen AS wg
ON a.WgNr = wg.WgNr

Diese Abfragen könntest Du z. B. als Sichten speichern, so dass
Unterschiede in den Strukturen - soweit möglich - egalisiert sind.

Den eigentlichen Abgleich kannst Du mit datenbank übergreifenden
Abfragen ausführen, in etwa
UPDATE dbo.Artikel
SET ...
FROM dbo.Artikel
INNER JOIN AndereDatenbank.dbo.Artikel AS dba
ON Artikel.ArtikelNr = dba.ArtikelNr

und àhnliches für fehlende, überschüssige Zeilen.

Die Aktualisierung für eine Tabelle (oder logische) Gruppe solltest
Du Dir in einer Stored Procedure abspeichern.

Besser die Datasets vergleichen oder im SQL-Server?



Damit kannst Du auch spàtere Strukturànderungen leichter nachvollziehen,
als wenn Du über DataSet o. à. die Tabellenstrukturen duplizieren
und zudem mühselig zeilenweise abgleichen mußt.

Gruß Elmar

Ähnliche fragen