Christian Kruse: MSSQL Trigger für Update/insert => TS + Checksum?

Beitrag lesen

Moin hotti,

Kann ich einen Trigger so anlegen, dass er bei jedem Update/Insert in der Tabelle Artikel beim entsprechenden Eintrag einen Timestamp und eine Checksum des Datensatzes in die Tabelle Artikel schreibt?

Das kannst Du auch ohne Trigger machen.

Wie soll das gehen? Bedenke: die Applikation, die die Daten erzeugt, darf nicht verändert werden.

Ich würde die Tabelle Artikel also einfach um eine Spalte TS und Checksum erweitern wollen und dort dann bei jedem Update/Insert die entsprechenden Werte eintragen wollen...

Das ist nicht im Sinne eines Triggers.

Unsinn. Trigger sind unter anderem genau dafür da.

Mit einem Trigger kriegst Du über die _Engine_ Informationen über die Ausführung bestimmter Statements auf eine bereits vorhandene Tabelle, z.B. Insert/Update Table Article, ohne dass an den Statements oder an der Tabelle was geändert werden muss.

Trigger im Kontext von Datenbanken sind Event-basierte Aktionen. Nicht mehr und nicht weniger. Sie werden gerne benutzt, um automagische™ Felder zu pflegen oder wie im Falle des OP, wenn man nicht an der Applikation selber schreiben kann. Auch Replikation habe ich schonmal mit Triggern umgesetzt gesehen.

Nutze die Engine und schreibe Trigger-Resultate in eine etxtra Tabelle.

Ich sehe aufgrund der geschilderten Fakten keinen Grund, die beiden Felder auszulagern.

LG,
 CK