Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Włącza wyzwalacz DML, DDL lub logowania.
Transact-SQL konwencje składni
Składnia
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
To nazwa schematu, do którego należy wyzwalacz.
schema_name nie można określić dla wyzwalaczy DDL lub logowania.
trigger_name
Czy nazwa wyzwalacza ma być włączona?
ALL
Wskazuje, że wszystkie wyzwalacze zdefiniowane w zakresie klauzuli ON są włączone.
object_name
To nazwa tabeli lub widoku, na którym wyzwalacz DML trigger_name został utworzony, aby go wykonać.
DATABASE
Dla wyzwalacza DDL oznacza, że trigger_name został utworzony lub zmodyfikowany, aby wykonać się w zakresie bazy danych.
WSZYSTKIE SERWERY
Dotyczy: SQL Server 2008 (10.0.x) i nowszych.
Dla wyzwalacza DDL oznacza, że trigger_name został utworzony lub zmodyfikowany do wykonania w zakresie serwera. ALL SERVER dotyczy także wyzwalaczy logowania.
Uwaga / Notatka
Ta opcja nie jest dostępna w zamkniętej bazie danych.
Uwagi
Włączenie wyzwalacza nie odtwarza go. Wyłączony wyzwalacz nadal istnieje jako obiekt w obecnej bazie danych, ale nie uruchamia się. Aby włączyć wyzwalacz, powoduje jego uruchomienie po uruchomieniu dowolnych Transact-SQL instrukcji, na których został pierwotnie zaprogramowany. Wyzwalacze są wyłączane przez WYŁĄCZENIE WYZWALACZ. Wyzwalacze DML zdefiniowane w tabelach można również wyłączyć lub wyłączyć za pomocą ALTER TABLE.
Permissions
Aby włączyć wyzwalacz DML, użytkownik potrzebuje co najmniej pozwolenia ALTER na tabelę lub widok, w którym wyzwalacz został utworzony.
Aby włączyć wyzwalacz DDL o zakresie serwera (NA WSZYSTKICH SERWERACH) lub wyzwalacz logowania, użytkownik potrzebuje uprawnień CONTROL SERVER na serwerze. Aby włączyć wyzwalacz DDL o zakresie bazy danych (ON DATABASE), użytkownik musi przynajmniej ZMIENIĆ DOWOLNE UPRAWNIENIA DO WYZWALANIA DDL bazy danych w aktualnej bazie danych.
Przykłady
A. Włączanie wyzwalacza DML na tabeli
Poniższy przykład wyłącza wyzwalanie uAddress utworzone w tabeli Address w bazie AdventureWorks, a następnie go włącza.
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 wyzwalacz safety DDL o zakresie bazy danych, a następnie go wyłącza i włącza.
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 triggerów zdefiniowanych o tym samym zakresie
Poniższy przykład umożliwia wszystkie wyzwalacze DDL utworzone w skali serwera.
Dotyczy: SQL Server 2008 (10.0.x) i nowszych.
ENABLE Trigger ALL ON ALL SERVER;
GO
Zobacz też
WYŁĄCZ WYZWALACZ (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
UTWÓRZ TRIGGER (Transact-SQL)
WYZWALACZ DROP (Transact-SQL)
sys.triggers (Transact-SQL)