Wyłącz WYZWALACZA (Transact-SQL)
Wyłącza wyzwalacza.
Składnia
DISABLE 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 mają zostać wyłączone.ALL
Wskazuje, że wszystkie wyzwalacze zdefiniowanych na zakres ON klauzula są wyłączone.Przestroga SQL ServerTworzy wyzwalaczy w bazach danych, które są publikowane replikacja scalająca.Określanie w bazach danych opublikowanych wyłącza te wyzwalacze, które disrupts replikacja.Upewnij się, że bieżąca baza danych nie jest publikowana replikacja scalająca przed określeniem wszystkich.
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
Wyzwalacze są domyślnie włączone, podczas ich tworzenia.Wyłączanie wyzwalacz nie upuść ją.Wyzwalacz jest nadal istnieje jako obiekt w bieżącej bazie danych.Jednak wyzwalacz nie ognia, przy Transact-SQL wykonywane są sprawozdania, na których został zaprogramowany.Wyzwalacze mogą ponownie za pomocą Włączyć WYZWALACZA.WyzwalaczeDML , określone w tabelach można również wyłączyć lub włączyć za pomocą ALTER TABLE.
Uprawnienia
Aby wyłączyć wyzwalacza DML , co najmniej użytkownik musi mieć ZMIEŃ uprawnienie dla tabela lub widoku utworzono wyzwalacza.
Aby wyłączyć wyzwalacza DDL z serwera zakres (na wszystkich SERVER) lub logowania, użytkownik musi mieć uprawnienie Kontrola serwera na serwerze.Aby wyłączyć wyzwalacz DDL z bazy danych zakres (na bazie danych), jako minimum, użytkownik musi mieć uprawnienie ALTER DATABASE dowolnego DDL WYZWALACZA w bieżącej bazie danych.
Przykłady
A.Wyłączanie wyzwalacza DML w tabela
Następujący przykład wyłącza wyzwalacza uAddress utworzono w tabela Address.
USE AdventureWorks2008R2;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B.Wyłą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
C.Wyłączenie wszystkich wyzwalaczy, które zostały zdefiniowane w tym samym zakres
Następujący przykład wyłącza wszystkie wyzwalacze DDL , które zostały utworzone na serwerze zakres.
USE AdventureWorks2008R2;
GO
DISABLE Trigger ALL ON ALL SERVER;
GO