Freigeben über


Grundlegendes zu DML-Triggern

Microsoft In SQL Server 2005 stehen zwei Hauptmechanismen zum Erzwingen von Geschäftsregeln und Datenintegrität zur Verfügung: Einschränkungen und Trigger. Ein Trigger ist eine besondere Form einer gespeicherten Prozedur, die automatisch wirksam wird, sobald ein Sprachereignis ausgeführt wird. SQL Server enthält zwei allgemeine Arten von Triggern: DML-Trigger und DDL-Trigger.

DDL-Trigger sind in SQL Server 2005 neu. Diese Trigger werden aufgerufen, wenn ein DDL-Ereignis (Data Definition Language) auf dem Server oder in der Datenbank auftritt. Eine ausführlichere Beschreibung finden Sie unter DDL-Trigger.

DML-Trigger werden aufgerufen, wenn ein DML-Ereignis (Data Manipulation Language) in der Datenbank auftritt. DML-Ereignisse schließen INSERT-, UPDATE- oder DELETE-Anweisungen ein, die Daten in einer angegebenen Tabelle oder Sicht ändern. Ein DML-Trigger kann andere Tabellen abfragen und komplexe Transact-SQL-Anweisungen enthalten. Der Trigger und die auslösende Anweisung werden wie eine einzige Transaktion behandelt, für die aus dem Trigger heraus ein Rollback ausgeführt werden kann. Tritt ein schwerer Fehler auf (z. B. bei unzureichendem Speicherplatz), wird für die gesamte Transaktion automatisch ein Rollback ausgeführt.

DML-Trigger sind aus folgenden Gründen nützlich:

  • Sie können Änderungen über verknüpfte Tabellen in der Datenbank kaskadierend weitergeben. Diese Änderungen können jedoch mithilfe von kaskadierenden Einschränkungen der referenziellen Integrität effizienter ausgeführt werden.
  • Sie können vor böswilligen oder falschen INSERT-, UPDATE- und DELETE-Operationen schützen und andere Einschränkungen erzwingen, die komplexer als die mit CHECK-Einschränkungen definierten sind.
    Im Gegensatz zu CHECK-Einschränkungen können DML-Trigger auf Spalten in anderen Tabellen verweisen. So kann ein Trigger beispielsweise eine SELECT-Anweisung aus einer anderen Tabelle verwenden, um die eingefügten oder aktualisierten Daten zu vergleichen und weitere Aktionen auszuführen, wie z. B. Ändern der Daten oder Anzeigen einer benutzerdefinierten Fehlermeldung.
  • Sie können den Status einer Tabelle vor und nach einer Datenänderung auswerten und, basierend auf den festgestellten Unterschieden, bestimmte Aktionen ausführen.
  • Mehrere DML-Trigger desselben Typs (INSERT, UPDATE oder DELETE) für eine Tabelle ermöglichen es, dass als Reaktion auf dieselbe Änderungsanweisung unterschiedliche Aktionen durchgeführt werden.

Siehe auch

Konzepte

DML-Triggertypen
Trigger im Vergleich zu Einschränkungen
DML-Trigger in der AdventureWorks-Beispieldatenbank

Hilfe und Informationen

Informationsquellen für SQL Server 2005