Nachverfolgen von Änderungen

martin_s

Neuer Benutzer
Beiträge
4
Hallo,
ich impotiere über ssis eine csv Datei in eine Tabelle.Die daten der csv haben keinen PK, den erstelle ich mit den Spalten vorgang+position+vdatum.Soweit so gut.Die Daten der csv kommen aus einer Auftragsverarbeitung und geben immer den kompletten Auftragsbestand wieder.Wie kann ich es nun am einfachsten lösen das mir die Änderungen zum letzten Import angezeigt werden? Besonders interessieren mich dabei die Datensätze die z.B gestern mit der csv noch übertragen wurden aber heute nicht mehr, weil eine Position gelöscht wurde z.B.

Danke!
 
Werbung:

Tommi

Datenbank-Guru
Beiträge
286
Hi,

also so ganz einfach ist das nun nicht.
Zunächst benötigst du dafür eine Tabelle, in der die übernommenen Daten auf Dauer abgelegt sind. (Datenhaltung DWH-like)
Dann werden die über die csv-Datei importierten Daten in eine temporären Tabelle geschrieben, die vor dem Import leer sein muss.

Die Datenhaltungs-Tabelle muss zudem einen Deleted-Flag beinhalten (Wenn man es genauer braucht, kann man auch ein Deleted-Datum mitführen).
Was die Änderungen angeht, liegt es an den vorliegenden Anforderungen. Möchte man alle Änderungen nachverfplgen, muss man diese natürlich historisch in der Datenhaltungs-Tabelle mitführen. Dann wirds etwas umständlicher, da man dann noch das Änderungsdatum mitführen und evtl. den aktuellen Datensatz kennzeichnen muss. Dann reicht auch dein bisheriger PKEY natürlich nicht mehr aus.
Der inhaltliche Vergleich der Daten wird dann auch kniffliger, da man nur den letzten aktuellen Datensatz inhaltlich vergleichen darf.
Bei neuen Datensätzen ist natürlich auch das erste Eintragsdatum interessant.

Für einen Abgleich müssen dann drei Punkte betrachtet werden:
1. Datensätze der temporären Tabelle sind nicht in der Datenhaltungs-Tabelle vorhanden (Neue Datensätze)
2. Datensätze der temporären Tabelle unterscheiden sich inhaltlich mit denen in der Datenhaltungs-Tabelle (Vergleich über PKEY)
3. Datensätze in der Datenhaltungs-Tabelle sind in der temporären Tabelle nicht vorhanden (gelöschte Datensätze)

Die Vergleiche und die Übernahme aus der temporären Tabelle in die Datenhaltungs-Tabelle würde ich dann über eine SQL-Prozedur lösen.

Viele Grüße,
Tommi
 
Oben