Implementieren von DDL-Triggern

Dieses Thema enthält Informationen, die Ihnen beim Erstellen von DDL-Triggern, Ändern von DDL-Triggern sowie Deaktivieren oder Löschen von DDL-Triggern helfen sollen.

Erstellen von DDL-Triggern

DDL-Trigger werden mithilfe der CREATE TRIGGER-Anweisung von Transact-SQL für DDL-Trigger erstellt.

So erstellen Sie einen DDL-Trigger

So löschen Sie einen DDL-Trigger

Wichtiger HinweisWichtig

Die Fähigkeit, Resultsets aus Triggern zurückzugeben, wird in einer zukünftigen Version von SQL Server entfernt. Durch Trigger, die Resultsets zurückgeben, kann es in Anwendungen, die hierfür nicht konzipiert wurden, zu unerwartetem Verhalten kommen. Vermeiden Sie deshalb bei Neuentwicklungen, Resultsets aus Triggern zurückzugeben, und planen Sie die Änderung von Anwendungen, in denen dies derzeit verwendet wird. Legen Sie die Option disallow results from triggers auf 1 fest, um zu verhindern, dass Trigger in SQL Server 2008 Resultsets zurückgeben. In einer zukünftigen Version von SQL Server wird die Standardeinstellung für die Option 1 sein.

HinweisHinweis

DLL-Trigger mit Serverbereich werden im Objekt-Explorer von SQL Server Management Studio im Ordner Trigger angezeigt. Dieser Ordner befindet sich unterhalb des Ordners Serverobjekte. DDL-Trigger mit Datenbankbereich werden im Ordner Datenbanktrigger angezeigt. Dieser Ordner befindet sich unterhalb des Ordners Programmierbarkeit der entsprechenden Datenbank.

Ändern von DDL-Triggern

Wenn Sie die Definition eines DDL-Triggers ändern müssen, können Sie den Trigger entweder löschen und neu erstellen oder den vorhandenen Trigger in einem einzigen Schritt neu definieren.

Wenn Sie den Namen eines Objekts ändern, auf das ein DDL-Trigger verweist, müssen Sie den Trigger so ändern, dass sein Text den neuen Namen widerspiegelt. Bevor Sie ein Objekt umbenennen, sollten Sie daher erst die Abhängigkeiten des Objekts anzeigen, um feststellen zu können, ob Trigger von der beabsichtigten Änderung betroffen sind.

Sie können einen Trigger auch ändern, um seine Definition zu verschlüsseln.

So ändern Sie einen Trigger

So zeigen Sie die Abhängigkeiten eines Triggers an

Deaktivieren und Löschen von DDL-Triggern

Wenn ein DDL-Trigger nicht mehr benötigt wird, kann er deaktiviert oder gelöscht werden.

Durch das Deaktivieren eines DDL-Triggers wird er nicht gelöscht. Der Trigger ist in der aktuellen Datenbank weiterhin als Objekt vorhanden. Der Trigger wird jedoch bei der Ausführung von Transact-SQL-Anweisungen, für die er programmiert wurde, nicht ausgelöst. Deaktivierte DDL-Trigger können erneut aktiviert werden. Wenn ein DDL-Trigger aktiviert wird, wird er so ausgelöst wie nach seiner ursprünglichen Erstellung. DDL-Trigger werden beim Erstellen standardmäßig aktiviert.

Wenn ein DDL-Trigger gelöscht wird, wird er aus der aktuellen Datenbank gelöscht. Objekte oder Daten, für die der DDL-Trigger den Bereich besitzt, sind hiervon nicht betroffen.

So deaktivieren Sie einen DDL-Trigger

So aktivieren Sie einen DDL-Trigger

So löschen Sie einen DDL-Trigger