Włącz WYZWALACZA (Transact-SQL)

Umożliwia DML, DDLlub logowania wyzwalacza.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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