Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Nachverfolgen von Änderungen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von martin_s, 13 November 2012.

  1. martin_s

    martin_s Neuer Benutzer

    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!
     
  2. Tommi

    Tommi Datenbank-Guru

    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
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden