Understanding DDL Triggers vs. DML Triggers
DDL wyzwalaczy i wyzwalaczy DML są używane do różnych celów.
Wyzwalacze DML operują na instrukcje INSERT, UPDATE i DELETE i wymusić reguły biznesowe i rozszerzyć integralność danych, po modyfikacji danych w tabelach lub widokach.
Wyzwalacze DDL wykorzystywane instrukcji CREATE, ALTER, DROP i innych DDL i wykonujących operacje DDL podobne procedur przechowywanych.Są one używane do wykonywania zadań administracyjnych i wymusić reguły biznesowe, które mają wpływ na bazach danych.Stosują się one do wszystkich poleceń jednego typu bazy danych, lub na serwerze.
DML wyzwalaczy i wyzwalaczy DDL są tworzone, zmodyfikowany i usunięte przy użyciu podobnych Transact-SQL Składnia oraz udostępniać inne podobne zachowanie.
Like DML triggers, DDL triggers can run managed code packaged in an assembly that was created in the Microsoft .NET Framework and uploaded in SQL Server.Aby uzyskać więcej informacji zobaczProgramming CLR Triggers.
Wyzwalacze DML, tak jak można utworzyć więcej niż jeden wyzwalacz DLL na tym samym Transact-SQL Instrukcja. Ponadto instrukcję, która go uruchomieniu i wyzwalaczy DDL są uruchamiane w ramach tej samej transakcji.Tej transakcji może zostać przywrócona z w wyzwalacz.Poważne błędy, może spowodować, że można automatycznie wycofać całej transakcji.Wyzwalacze DDL, które są uruchamiane z partia i zawierać jawnie instrukcja ROLLBACK TRANSACTION anuluje całej partia.Aby uzyskać więcej informacji zobaczZa pomocą wyzwalaczy DML, obejmujące zatwierdzanie lub ROLLBACK TRANSACTION.
Uwaga
Nie można wycofać na zdarzenie ALTER DATABASE wewnątrz treści wyzwalacz DLL.
Wyzwalacze DML, takich jak DDL Wyzwalacze mogą być zagnieżdżane.Aby uzyskać więcej informacji zobaczZa pomocą wyzwalaczy zagnieżdżone.
Projektując wyzwalacze DDL, należy rozważyć sposób ich różnią DML wyzwalacze, w następujący sposób:
Wyzwalacze DDL uruchomić tylko po Transact-SQL Instrukcja jest ukończona. Wyzwalacze DDL nie mogą być używane, a nie z wyzwalaczami.
Nie należy tworzyć wyzwalacze DDL dodaje and usunięte tabel.Informacje o uruchomieniu wyzwalacz DLL, a kolejne zmiany spowodowane przez wyzwalacz, zdarzenie jest przechwycone za pomocą EVENTDATA funkcja.Aby uzyskać więcej informacji zobaczUsing the EVENTDATA Function.