Frage

Ich habe auf mehrere Anwendungen gearbeitet, die XML-Daten in einer Datenbank gespeichert. Bis zum heutigen Tag überschrieben alle von ihnen einfach die aktuellen XML-Inhalte mit den neuen XML-Inhalten.

Ich möchte die Änderungen an der XML in der Datenbank speichern, aber nicht überschreiben, was derzeit in der DB ist.

Kurz nur neue Zeilen für Veränderungen zu schaffen und lassen die alten Reihen intakt, was andere Optionen könnte ich verwenden?

Ich habe darüber nachgedacht, nur die Unterschiede als eigentlichen Text Unterschiede zu speichern, die immer für XML funktioniert nicht.

Bin ich Nüsse für selbst diese wollen?

War es hilfreich?

Lösung

Sie möchten eine Audit-Tabelle prüfen, indem neben der Datentabelle zu setzen.

Es wäre nur die Spalten, die Sie interessiert sind, in die Geschichte zusammen mit einer Datetime-Spalte Tracking (zu dem Zeitpunkt der Änderung aufzeichnen) und in der Regel mögen Sie einige Benutzerinformationen sowie (dh die in Benutzern aus der Verbindung angemeldet ziehen oder einen Benutzernamen in Ihrer insert / update).

Dann einen Update-Trigger auf Ihrer Datentabelle erstellen und neue Zeilen in der Audit-Tabelle aus der gelöschten Pseudo-Tabelle einfügen. Dadurch werden die Daten vor einem Update enthalten, wenn Sie ein Update durchführen, da ein Update ist wirklich ein Lösch- und ein Einsatz.

Es gibt auch diese mehr Allzweck-Lösung, die SQL CLR zu abstrahieren einer einzigartigen Audit-Tabelle Implementierung und Trigger für jede Datentabelle Sie überwachen möchten, verwenden will: http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top