Understanding DDL Triggers
Wyzwalacze DDL, takie jak regularne wyzwalacze, uruchomienie procedur przechowywanych w odpowiedzi na zdarzenie.Jednak w odróżnieniu od wyzwalacze DML one nie ognia w odpowiedzi na UPDATE, INSERT lub DELETE instrukcji na tabela lub widoku.Można natomiast uruchomienie ich w odpowiedzi na różne zdarzenia definicja danych Language (DDL).Zdarzenia te odnoszą się głównie do Transact-SQL instrukcje, które zaczynają się od słowa kluczowe CREATE, ALTER i DROP. Niektóre procedury składowane w systemie, wykonujących operacje DDL podobne może również wystrzelić wyzwalacze DDL.
Important Note: |
---|
Przetestuj swoją wyzwalacze DDL do określenia ich odpowiedzi do procedur przechowywana w systemie, które są uruchamiane.Na przykład, instrukcja CREATE typ i sp_addtype oba przechowywane procedury spowoduje uruchomienie wyzwalacz DLL, który jest tworzony zdarzenie CREATE_TYPE. . |
Wyzwalacze DDL może służyć do wykonywania zadań administracyjnych, takich jak inspekcji i regulowanie operacji w bazie danych.
Użyj wyzwalaczy DDL, należy wykonać następujące czynności:
Istnieje potrzeba uniemożliwienia pewne zmiany do swojego schemat bazy danych.
Ma coś w bazie danych w odpowiedzi na zmiany w sieci schemat bazy danych.
Należy rejestrować zdarzenia lub zmiany w schemacie bazy danych.
Wyzwalacze DDL ognia dopiero po instrukcje DDL tego wyzwalacza są uruchamiane je.Wyzwalacze DDL nie mogą być używane, a nie z wyzwalaczami.
W poniższym przykładzie przedstawiono sposób użycia wyzwalacz DLL zapobiec dowolnej tabela w bazie danych, zmodyfikowane lub usunięte.
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK ;
Wyzwalacze DDL może wystrzelić w odpowiedzi na Transact-SQL zdarzenie, które są przetwarzane w bieżącej bazie danych lub na bieżącym serwerze. Zakres wyzwalacz zależy od tego zdarzenie.Aby uzyskać więcej informacji na temat zakres wyzwalacz DLL zobacz Designing DDL Triggers.
Aby uzyskać przykład wyzwalacz DLL, w którym jest dostępny w AdventureWorks Przykładowa baza danych, w Eksploratorze obiektów w SQL Server Management Studio, otwórz folder bazy danych wyzwalacze, znajdujące się w folderze programowania AdventureWorks Baza danych. Kliknij prawym przyciskiem myszy ddlDatabaseTriggerLog i wybierz opcję Skrypt bazy danych wyzwalacz jako.Domyślnie, wyzwalacz DLL ddlDatabaseTriggerLog jest wyłączona.