Usuwanie lub wyłączanie wyzwalaczy DML
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
W tym temacie opisano sposób usuwania lub wyłączania wyzwalacza DML w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL.
w tym temacie
Przed rozpoczęciem:
Aby usunąć lub wyłączyć wyzwalacz DML przy użyciu:
Przed rozpoczęciem
Zalecenia
Po usunięciu wyzwalacza jest on usuwany z bieżącej bazy danych. Nie ma to wpływu na tabelę i dane, na których jest oparta. Usunięcie tabeli powoduje automatyczne usunięcie wszystkich wyzwalaczy w tabeli.
Wyzwalacz jest domyślnie włączony podczas jego tworzenia.
Wyłączenie wyzwalacza nie powoduje jego usunięcia. Wyzwalacz nadal istnieje jako obiekt w bieżącej bazie danych. Jednak wyzwalacz nie zostanie wyzwolony, gdy zostanie wykonana dowolna instrukcja INSERT, UPDATE lub DELETE, na której został zaprogramowany. Wyzwalacze, które są wyłączone, można ponownie przywrócić. Włączenie wyzwalacza nie powoduje jego ponownego utworzenia. Wyzwalacz jest uruchamiany w taki sam sposób, jak w momencie jego utworzenia.
Bezpieczeństwo
Uprawnienia
Aby usunąć wyzwalacz DML, wymagane jest uprawnienie ALTER w tabeli lub widoku, w którym zdefiniowano wyzwalacz.
Aby wyłączyć lub włączyć wyzwalacz DML, co najmniej użytkownik musi mieć uprawnienie ALTER w tabeli lub widoku, w którym został utworzony wyzwalacz.
Korzystanie z programu SQL Server Management Studio
Aby usunąć wyzwalacz DML
W Eksploratorze obiektów połącz się z wystąpieniem silnika bazy danych, a następnie rozwiń to wystąpienie.
Rozwiń bazę danych, którą chcesz, rozwiń węzeł Tabele, a następnie rozwiń tabelę, która zawiera wyzwalacz, który chcesz usunąć.
Rozwiń Wyzwalacze, kliknij prawym przyciskiem myszy wyzwalacz, aby usunąć, a następnie kliknij Usuń.
W oknie dialogowym Usuń obiekt sprawdź, czy wyzwalacz do usunięcia jest poprawnie ustawiony, a następnie kliknij OK.
Aby wyłączyć i włączyć wyzwalacz DML
W Eksploratorze Obiektów połącz się z wystąpieniem Silnika Bazy Danych, a następnie rozwiń to wystąpienie.
Rozwiń bazę danych, którą chcesz, rozwiń węzeł Tabele, a następnie rozwiń tabelę zawierającą wyzwalacz, który chcesz wyłączyć.
Rozwiń Wyzwalacze, kliknij prawym przyciskiem myszy wyzwalacz, aby wyłączyć, a następnie kliknij Wyłącz.
Aby włączyć wyzwalacz, kliknij przycisk Włącz.
Korzystanie z Transact-SQL
Aby usunąć wyzwalacz DML
Połącz się z silnikiem bazy danych.
Na pasku Standard kliknij pozycję Nowe zapytanie.
Skopiuj i wklej następujące przykłady w oknie zapytania. Wykonaj instrukcję CREATE TRIGGER, aby utworzyć wyzwalacz
Sales.bonus_reminder
. Aby usunąć wyzwalacz, wykonaj instrukcję DROP TRIGGER.
--Create the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Compensation', 16, 10);
GO
--Delete the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
Aby wyłączyć oraz ponownie włączyć wyzwalacz DML
Połącz się z silnikiem bazy danych.
Na pasku standardowym kliknij pozycję Nowe zapytanie.
Skopiuj i wklej następujące przykłady w oknie zapytania. Wykonaj instrukcję CREATE TRIGGER, aby utworzyć wyzwalacz
Sales.bonus_reminder
. Aby wyłączyć i włączyć wyzwalacz, wykonaj odpowiednio instrukcje DISABLE TRIGGER i ENABLE TRIGGER.
--Create the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Compensation', 16, 10);
GO
--Disable the trigger.
USE AdventureWorks2022;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
--Enable the trigger.
USE AdventureWorks2022;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
Zobacz też
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
WYZWALACZ DROP (Transact-SQL)
WŁĄCZ WYZWALACZ (Transact-SQL)
WYŁĄCZ WYZWALACZ (Transact-SQL)
EVENTDATA (Transact-SQL)
uzyskać informacje o wyzwalaczach DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.wydarzenia_wyzwalacza_serwera (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)