刪除或停用 DML 觸發程序
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
此主題說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中刪除或停用 DML 觸發程序。
本主題內容
開始之前:
若要刪除或停用 DML 觸發程序,使用:
開始之前
建議
刪除觸發程序時,會從目前的資料庫卸除它。 其所依據的資料表和資料不受影響。 刪除資料表時會自動刪除資料表上的所有觸發程序。
觸發程序預設為在建立時啟用。
即使停用觸發程序,也不會卸除它。 該觸發程序仍然會以物件形式存在於目前的資料庫中。 不過,當設計此觸發程序的 INSERT、UPDATE 或 DELETE 陳述式執行時,不會引發觸發程序。 已停用的觸發程序可重新啟用。 啟用觸發程序並不會重新建立它。 觸發程序會以當初建立的相同方式引發。
安全性
權限
刪除 DML 觸發程序需要定義觸發程序所在資料表或檢視表的 ALTER 權限。
若要停用或啟用 DML 觸發程序,使用者至少要對建立該觸發程序的資料表或檢視,具備 ALTER 權限。
使用 SQL Server Management Studio
刪除 DML 觸發程序
在 [物件總管] 中,連接到資料庫引擎的執行個體,然後展開該執行個體。
展開您要的資料庫,展開 [資料表],然後展開包含您要刪除之觸發程序的資料表。
展開 [觸發程序],以滑鼠右鍵按一下要刪除的觸發程序,然後按一下 [刪除]。
在 [刪除物件] 對話方塊中,確認要刪除的觸發程序,然後按一下 [確定]。
若要停用和啟用 DML 觸發程序
在 [物件總管] 中,連接到資料庫引擎的執行個體,然後展開該執行個體。
展開您要的資料庫,展開 [資料表],然後展開包含您要停用之觸發程序的資料表。
展開 [觸發程序],以滑鼠右鍵按一下要停用的觸發程序,然後按一下 [停用]。
若要啟用觸發程序,請按一下 [啟用]。
使用 TRANSACT-SQL
刪除 DML 觸發程序
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼入查詢視窗中。 執行 CREATE TRIGGER 陳述式即可建立
Sales.bonus_reminder
觸發程序。 若要刪除觸發程序,請執行 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
若要停用和啟用 DML 觸發程序
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼入查詢視窗中。 執行 CREATE TRIGGER 陳述式即可建立
Sales.bonus_reminder
觸發程序。 若要停用和啟用觸發程序,請分別執行 DISABLE TRIGGER 和 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
另請參閱
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
取得關於 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.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)