Udostępnij za pośrednictwem


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 noteImportant 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.