適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Microsoft Fabric 中的 SQL 資料庫
此主題說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中刪除或停用 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 and 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 觸發程序的詳細資訊
- sys.sp_help(Transact-SQL)
- sys.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)