Triggers und History

15/04/2009 - 15:56 von Albert Andersson | Report spam
Um eine History Tabelle zu füllen, möchte ich Triggers verwenden.
Ich habe mich noch nicht ins Thema eingearbeitet, wollte aber von vorne
herein abklàren ob das so, wie ich es mir Vorstelle realisierbar ist.

Mache ich ein update auf eine Tabelle und ich editiere mehr als nur ein
Feld, möchte ich in der History-Tabelle für jedes verànderte Feld ein
eintrag erstellen.

Die Tablelle sollte ungefàhr so aussehen:

tbl_History
-TimeStamp
-PersonInCharte
-EntryType
-Table
-ID_Entry
-Field-
-OldValue
-NewValue

Ich editiere nun zB die Tablelle tbl_Person und veràndere die Felder
"Forename, Surname, ID_Status"
In der History sollten dann diese 3 Eintràge erscheinen:

DateTime DomainUser Edit tbl_Person ID_Person Forename Walter Stefan
DateTime DomainUser Edit tbl_Person ID_Person Surname Hans Ueli
DateTime DomainUser Edit tbl_Person ID_Person ID_Status 3 6

Dynamisch ausgelesen müssten nur das entspr. Feld und die Vor und Nacher
werte.

Die Tabelle kann mit der Zeit neue Felder bekommen, oder welche
verlieren und es wàre gut wenn man das nicht im Trigger anpassen müsste.

Ist es möglich und habt ihr mir eine Lektüre zum Thema?

Danke
Albert
 

Lesen sie die antworten

#1 Gerald Aichholzer
16/04/2009 - 09:09 | Warnen spam
Hallo Albert,

Albert Andersson wrote:
Um eine History Tabelle zu füllen, möchte ich Triggers verwenden.
Ich habe mich noch nicht ins Thema eingearbeitet, wollte aber von vorne
herein abklàren ob das so, wie ich es mir Vorstelle realisierbar ist.



[...]

falls du den SQL Server 2008 verwendest, dann bietet dieser schon
ein eingebautes Feature, das für dich interessant sein könnte:
Change Data Capture
http://msdn.microsoft.com/de-de/lib...22489.aspx

<zitat>
Change Data Capture ist dafür bestimmt, an SQL Server-Tabellen
vorgenommene Einfüge-, Aktualisierungs- und Löschvorgànge auf-
zuzeichnen und die Informationen zu den einzelnen Änderungen in
einem leicht verarbeitbaren relationalen Format darzustellen.
Die von Change Data Capture verwendeten Änderungstabellen ent-
halten Spalten, die die Spaltenstruktur der nachverfolgten
Quelltabelle widerspiegeln, sowie die Metadaten, die zum Ver-
stàndnis der vorgenommenen Änderungen erforderlich sind.

Change Data Capture ist nur in der Enterprise, Developer und
Evaluation Edition von SQL Server verfügbar.
</zitat>

hth,
Gerald

Ähnliche fragen