Update-Trigger

25/12/2007 - 15:27 von Thomas Kehl | Report spam
Hallo.
Ich möchte einen Updatetrigger erstellen. In diesem Trigger soll ein
logisches Feld der Tabelle auf false gesetzt werden, sobald bestimmte Felder
geàndert wurden. Nun habe ich mal versucht diesen Trigger zu erstellen. Das
Problem ist nun: Wie kann ich den PrimaryKey-Wert des Datensatzes ermitteln,
der aktualisiert wurde, um mittels Update-Statement im Trigger das logische
Feld auf false zu setzen?

Gibt es für meine Aufgabe evt. eine elegantere Lösung?

Danke für eure Hilfe!

Beste Grüsse, Thomas
 

Lesen sie die antworten

#1 Olaf Pietsch
25/12/2007 - 19:49 | Warnen spam
Hallo Thomas,

"Thomas Kehl" <t.kehl (at) heeb.com> schrieb im Newsbeitrag
news:
Hallo.
Ich möchte einen Updatetrigger erstellen. In diesem Trigger soll ein
logisches Feld der Tabelle auf false gesetzt werden, sobald bestimmte
Felder geàndert wurden. Nun habe ich mal versucht diesen Trigger zu
erstellen. Das Problem ist nun: Wie kann ich den PrimaryKey-Wert des
Datensatzes ermitteln, der aktualisiert wurde, um mittels Update-Statement
im Trigger das logische Feld auf false zu setzen?

Gibt es für meine Aufgabe evt. eine elegantere Lösung?




es gibt die logischen Tabellen inserted und deleted im Trigger, diese habe
die gleiche Struktur wie die Tabelle zu der der Trigger gehört.
In inserted stehen die neuen/eingefügten Sàtze in deleted die
alten/gelöschten, d. h. beim UPDATE sind beide Tabellen gefüllt.

In etwas so:
Update meineTabelle
set
Feld=0
where
PK in (Select PK from inserted)

(oder JOIN mit inserted im UPDATE verwenden)

Bei Triggern bitte niemals vergessen, dass in inserted und deleted mehrere
Zeilen drinn stehen können, wenn man mit einem SQL Statement mehrere Zeilen
veràndert hat. Deshalb habe ich das o. g. Subselect verwendet.

Verwenden der Tabellen inserted und deleted
http://msdn2.microsoft.com/de-de/li...91300.aspx

Frohe Weihnachten weiterhin!
Gruß Olaf
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Blog (http://www.sqlpass.de/PASSUserBlogs...x?BlogID=3)
Regionalgruppe Köln/Bonn/Düsseldorf
(http://www.sqlpass.de/Regionalgrupp...fault.aspx)

Ähnliche fragen