SQL Delete Trigger

BigStrike

Cadet 4th Year
Registriert
Feb. 2008
Beiträge
66
Hallo zusammen

Ich versuche derzeit einen delete Trigger auf einer MSSQL2008 Datenbank zu erstellen. Ich bin leider ein absoluter Anfänger in Sachen SQL und hoffe einer von euch kann mich aufklären ;-)

Der Trigger sieht wie folgt aus:


Create Trigger trigger_delete on Tabelle1
FOR DELETE AS
BEGIN
DELETE FROM Tabelle2 WHERE AutoID = old.AutoID;

END


Nun zu meiner Frage, wie gebe ich einem Trigger den Wert der gelöschten Zeile z.B. aus der Spalte AutoID weiter damit die Zeile mit dem selben Wert für AutoID in Tabelle 2 gelöscht wird?

Danke und Gruss
BigStrike
 
Danke Fritz auch gute Idee.Dein Vorschlag fiel mir heut morgen beim Zähneputzen ein:-D
 
Wie schon geschrieben hast du die Möglichkeit über einen Foreign Key mit der On Delete Cascade Option die Zeilen automatisch löschen zu können. Dies würde ich bevorzugen wenn es darum geht auch abhängige Zeilen aus weiteren Tabellen zu löschen...

Alternativ kannst du im Trigger die DELETED und INSERTED Tabellen verwenden. In DELETED stehen die Datensätze, die durch das DELETE gelöscht wurden. Z.B.

Code:
CREATE TRIGGER trigger_delete ON Tabelle1
FOR DELETE AS
BEGIN
  DELETE FROM Tabelle2 WHERE AutoID IN (SELECT AutoID FROM DELETED);
END

Viel Erfolg
Rossibaer
 
Zurück
Oben