Hallo, da meine SQL-Kenntnisse noch sehr eingeschränkt sind und mich die Problematik überfordert stelle ich mein Problem hier mal ein.
Ich möchte regemäßig per sql-Script-Abfrage die Veränderungen eines Feldwertes (Wert = Datum oder NULL) bestimmter Datensätze (Feld3 = ABC) in einer Tabelle überwachen und in einer zweiten Datenbank protokollieren.
In eine zweite Datenbank deshalb, weil die Datenbank1 eine komplexe Produktivdatenbankanwendung ist die ich nicht verändern möchte.
Datenbank1, Tabelle1, Feld2 soll überwacht werden.
Identifiziert wird jede Zeile über eine eindeutige ID (Feld1) und einen fixen Wert in Feld3 (z.B.: "ABC").
Protokolliert wird in Datenbank2, Tabelle2, Feld1, Feld2 + Datumsfeld (Änderungsdatum).
Beispiel:
In Datenbank 1 ändert sich am 07.02.2015 bei ID2 und ID3 das Feld2, zusätzlich kommt Datensatz ID5 und ID6 dazu:
Das Skript soll dies erkennen und in Datenbank2 folgende Änderungen / Ergänzungen vornehmen
(natürlich nur bei/mit den "ABC"- Datensätzen):
Meine angedachte Vorgehensweise wäre folgende:
Zuerst (einmalig) in Datenbank2 die betreffende Tabelle anlegen und mit allen Daten aus Datenbank1 (Feld3 = ABC) füllen (Datum = 01.02.2015).
Danach per Script regelmäßig alle betreffenden Datensätze aus Datenbank1 (Feld3 = ABC) in eine (ggf. temporäre) Tabelle3 in Datenbank2 kopieren (um nicht in 2 Datenbanken arbeiten zu müssen).
Danach die "Überwachungsaktion" inkl. Ergänzung der neuen Datensätze in Tabelle2 durchführen. Anschließend alle Datensätze in der Tabelle3 löschen.
Ziel ist wie gesagt, alle Veränderungen in Feld2 bei Datensätzen mit Feld3 = "ABC" zu protokollieren.
Über eine gefilterte Abfrage (über Feld1) kann ich mir dann spezielle Datensätze heraussuchen.
Das Erstellen der Datenbank / Tabelle bzw. das Füllen der (ggf. temporären) Tabelle ist nicht das Problem. Mein Problem ist die Umsetzung der Erkennung der Veränderung bzw. der neuen Datensätze.
Wäre diese Vorgehensweise richtig oder gibt es einfachere Vorschläge (und Lösungen) ?
Vielen Dank schon mal vorab.
Ich möchte regemäßig per sql-Script-Abfrage die Veränderungen eines Feldwertes (Wert = Datum oder NULL) bestimmter Datensätze (Feld3 = ABC) in einer Tabelle überwachen und in einer zweiten Datenbank protokollieren.
In eine zweite Datenbank deshalb, weil die Datenbank1 eine komplexe Produktivdatenbankanwendung ist die ich nicht verändern möchte.
Datenbank1, Tabelle1, Feld2 soll überwacht werden.
Identifiziert wird jede Zeile über eine eindeutige ID (Feld1) und einen fixen Wert in Feld3 (z.B.: "ABC").
Protokolliert wird in Datenbank2, Tabelle2, Feld1, Feld2 + Datumsfeld (Änderungsdatum).
Beispiel:
In Datenbank 1 ändert sich am 07.02.2015 bei ID2 und ID3 das Feld2, zusätzlich kommt Datensatz ID5 und ID6 dazu:
Das Skript soll dies erkennen und in Datenbank2 folgende Änderungen / Ergänzungen vornehmen
(natürlich nur bei/mit den "ABC"- Datensätzen):
Meine angedachte Vorgehensweise wäre folgende:
Zuerst (einmalig) in Datenbank2 die betreffende Tabelle anlegen und mit allen Daten aus Datenbank1 (Feld3 = ABC) füllen (Datum = 01.02.2015).
Danach per Script regelmäßig alle betreffenden Datensätze aus Datenbank1 (Feld3 = ABC) in eine (ggf. temporäre) Tabelle3 in Datenbank2 kopieren (um nicht in 2 Datenbanken arbeiten zu müssen).
Danach die "Überwachungsaktion" inkl. Ergänzung der neuen Datensätze in Tabelle2 durchführen. Anschließend alle Datensätze in der Tabelle3 löschen.
Ziel ist wie gesagt, alle Veränderungen in Feld2 bei Datensätzen mit Feld3 = "ABC" zu protokollieren.
Über eine gefilterte Abfrage (über Feld1) kann ich mir dann spezielle Datensätze heraussuchen.
Das Erstellen der Datenbank / Tabelle bzw. das Füllen der (ggf. temporären) Tabelle ist nicht das Problem. Mein Problem ist die Umsetzung der Erkennung der Veränderung bzw. der neuen Datensätze.
Wäre diese Vorgehensweise richtig oder gibt es einfachere Vorschläge (und Lösungen) ?
Vielen Dank schon mal vorab.