Włącz WYZWALACZA (Transact-SQL)
Umożliwia DML, DDLlub logowania wyzwalacza.
Składnia
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Argumenty
schema_name
Jest to nazwa schematu, do której należy dany wyzwalacz.schema_namenie można określić dla Wyzwalacze DDL lub logowania.trigger_name
Jest to nazwa wyzwalacza ma być włączony.ALL
Wskazuje, czy włączone są wszystkie wyzwalacze zdefiniowanych na zakres ON klauzula .object_name
Jest nazwą tabela lub widoku, w którym wyzwolić DML trigger_name został utworzony w celu wykonać.BAZY DANYCH
Dla wyzwalacza DDL wskazuje, że trigger_name utworzenia lub modyfikacji wykonać bazę danych zakres.WSZYSTKIE SERWERA
Dla wyzwalacza DDL wskazuje, że trigger_name utworzenia lub modyfikacji wykonać serwera, zakres.WSZYSTKIE serwera stosuje się również do logowania usługi wyzwalaczy.
Uwagi
Włączanie wyzwalacz nie ją odtworzyć.Wyzwalacz wyłączone nadal istnieje jako obiektu w bieżącej bazie danych, ale nie ognia.Włączenie wyzwalacz powoduje on ognia przy Transact-SQL wykonywane są sprawozdania, na których został pierwotnie zaprogramowany.Wyzwalacze są wyłączone za pomocą Wyłączenia WYZWALACZA.WyzwalaczeDML , określone w tabelach można również wyłączyć lub włączyć za pomocą ALTER TABLE.
Uprawnienia
Aby włączyć wyzwalacza DML , co najmniej użytkownik musi mieć ZMIEŃ uprawnienie dla tabela lub widoku utworzono wyzwalacza.
Aby włączyć wyzwalacza DDL z serwera zakres (na wszystkich SERVER) lub logowania, użytkownik musi mieć uprawnienie Kontrola serwera na serwerze.Umożliwienie wyzwalacz DDL z bazy danych zakres (na bazie danych), co najmniej użytkownik musi mieć uprawnienie ALTER DATABASE dowolnego DDL WYZWALACZA w bieżącej bazie danych.
Przykłady
A.Włączanie wyzwalacza DML w tabela
Następujący przykład wyłącza wyzwalacza uAddress utworzono w tabela Addressi umożliwia go
USE AdventureWorks2008R2;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE Trigger Person.uAddress ON Person.Address;
GO
B.Włączanie wyzwalacza DDL
Poniższy przykład tworzy wyzwalacza DDL safety z bazy danych zakres, a następnie wyłącza typie.
IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety ON DATABASE;
GO
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
ENABLE TRIGGER safety ON DATABASE;
GO
C.Włączanie wszystkich wyzwalaczy, które zostały zdefiniowane w tym samym zakres
Poniższy przykład włącza wszystkie wyzwalacze DDL , które zostały utworzone na serwerze zakres.
USE AdventureWorks2008R2;
GO
ENABLE Trigger ALL ON ALL SERVER;
GO