Auge: Hilfe bei SQL Trigger

Beitrag lesen

Hallo

[...] und dass ein UPDATE meines Wissens nach nicht mit SET arbeitet

Das SET ist sogar ein zwingend notwendiger Bestandteil eines Update-Statements.

Stimmt, ich war gedanklich <del>einerseits bei der Schreibweise, die MySQL anbietet und die analog zu INSERT funktioniert und andererseits</del> bei SET als Befehl zur Änderung einer Variablen ausßerhalb eines Queries.

Ich sollte Feierabend machen.

also abgesehen von den nicht schlüssigen Dingen, sieht der Code schlüssig aus.

Was ist, wenn der Update-Trigger mit dem UPDATE drin den Update-Trigger triggert?

Gute Frage. Ich benutze in MS SQL einen Trigger AFTER UPDATE, in dem die Ausführung zusätzlich mit IF UPDATE ([Feldname]) auf die Reaktion auf die Änderung dieses bestimmten Feldes beschränkt wird, dessen Wert zu allem Überfluss innerhalb des Triggers geändert wird. Deine Frage impliziert die Vermutung, dass der Trigger in einer Endlosschleife landen müsste. Das tut er aber nicht.

Zudem setzt der Trigger das Flag immer und nicht nur wenn die beiden Felder geändert wurden.

Wir enden also bei „abgesehen von weiteren als den vorgenannten Bedingungen“. 😀


Bei MySQL jedenfalls würde ich einen BEFORE-Trigger nehmen, aber der MS SQL Server hat sowas wohl nicht. Mit dem kann man Werte vor dem Speichern anpassen.

Die MS-SQL-Doku nennt in dieser Hinsicht FOR, AFTER und INSTEAD OF als mögliche Werte. AFTER und INSTEAD OF sind mMn selbsterklärend, zu FOR schweigt sich die verlinkte Seite allerdings leider aus.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett