Arbeiten mit Triggern

Aktualisiert: November 2007

Bei einem Trigger handelt es sich um eine besondere Art von gespeicherter Prozedur, die beim Ändern von Daten in einer angegebenen Tabelle mithilfe einer oder mehrerer der nachfolgenden Datenänderungsvorgänge ausgeführt wird: UPDATE, INSERT oder DELETE. Durch besondere Trigger, die als INSTEAD OF-Trigger bezeichnet werden, können Änderungen an den einer Ansicht zugrunde liegenden Basistabellen angegeben werden.

Trigger können andere Tabellen abfragen und komplexe SQL-Anweisungen enthalten. Sie sind in erster Linie beim Erzwingen komplexer Geschäftsregeln oder -anforderungen nützlich. Es kann z. B. auf der Grundlage des aktuellen Kontostands eines Kunden gesteuert werden, ob ein neuer Auftrag eingefügt werden kann.

Trigger sind darüber hinaus hilfreich beim Erzwingen von referenzieller Integrität, die die definierten Beziehungen zwischen Tabellen beim Hinzufügen, Aktualisieren oder Löschen von Zeilen in den betreffenden Tabellen aufrechterhält. Das beste Verfahren zum Erzwingen von referenzieller Integrität besteht jedoch im Definieren von Primär- und Fremdschlüsseleinschränkungen in den zusammenhängenden Tabellen. Wenn Sie den Tabellen-Designer verwenden, können Sie eine Beziehung zwischen Tabellen in der Weise erstellen, dass automatisch eine Fremdschlüsseleinschränkung erstellt wird. Ausführliche Informationen finden Sie unter Tabellenbeziehungen (Visual Database Tools).

Trigger sind in dreierlei Hinsicht nützlich:

  • Trigger funktionieren automatisch. Sie werden unmittelbar nach einer beliebigen Änderung an den Daten der Tabelle aktiviert, wie etwa durch einen manuellen Eintrag oder eine Anwendungsaktion.

  • Trigger können Änderungen in zusammenhängenden Tabellen in der Datenbank wiederholen. Beispielsweise können Sie einen Löschtrigger für die Spalte title_id der Tabelle titles so schreiben, dass er ein Löschen der entsprechenden Zeilen in anderen Tabellen bewirkt. Der Trigger verwendet die Spalte title_id als eindeutigen Schlüssel, um entsprechende Zeilen in den Tabellen titleauthor, sales und roysched zu finden.

  • Mit Triggern können Einschränkungen erzwungen werden, die komplexer sind als diejenigen, die mit CHECK-Einschränkungen (Visual Database Tools) definiert werden. Im Gegensatz zu Check-Einschränkungen können Trigger auf Spalten in anderen Tabellen verweisen. Beispielsweise kann ein Trigger Aktualisierungen rückgängig machen, die versuchen, einen Rabatt (der in der Tabelle discounts gespeichert ist) auf Bücher (in der Tabelle titles gespeichert) mit einem Preis unter € 40,00 anzuwenden.

Weitere Informationen und Beispieltrigger finden Sie in der Dokumentation des Datenbankservers. Wenn Sie Microsoft SQL Server verwenden, finden Sie Informationen unter "CREATE TRIGGER" in SQL Server Books Online.

In diesem Abschnitt

Gewusst wie: Erstellen eines Triggers

Gewusst wie: Speichern eines Triggers

Gewusst wie: Öffnen eines Triggers

Gewusst wie: Löschen eines Triggers

Gewusst wie: Ändern von Triggern

Verwenden von INSTEAD OF-Triggern für Ansichten

Gewusst wie: Anzeigen von Triggereigenschaften

Referenz

Referenz (Visual Database Tools)