刪除或停用 DML 觸發程序
此主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 刪除或停用 SQL Server 2012 中的 DML 觸發程序。
本主題內容
開始之前:
建議
安全性
若要刪除或停用 DML 觸發程序,使用:
SQL Server Management Studio
Transact-SQL
開始之前
建議
刪除觸發程序時,會從目前的資料庫卸除它。 其所依據的資料表和資料不受影響。 刪除資料表時會自動刪除資料表上的所有觸發程序。
觸發程序預設為在建立時啟用。
即使停用觸發程序,也不會將它卸除。 觸發程序仍然是目前資料庫中的一個物件。 不過,當設計此觸發程序的 INSERT、UPDATE 或 DELETE 陳述式執行時,不會引發觸發程序。 已停用的觸發程序可重新啟用。 啟用觸發程序並不會重新建立它。 觸發程序會以當初建立的相同方式引發。
安全性
權限
刪除 DML 觸發程序需要定義觸發程序所在資料表或檢視表的 ALTER 權限。
若要停用或啟用 DML 觸發程序,使用者至少要對建立該觸發程序的資料表或檢視,具備 ALTER 權限。
[Top]
使用 SQL Server Management Studio
刪除 DML 觸發程序
在 [物件總管] 中,連接到 Database Engine 的執行個體,然後展開該執行個體。
展開您要的資料庫,展開 [資料表],然後展開包含您要刪除之觸發程序的資料表。
展開 [觸發程序],以滑鼠右鍵按一下要刪除的觸發程序,然後按一下 [刪除]。
在 [刪除物件] 對話方塊中,確認要刪除的觸發程序,然後按一下 [確定]。
若要停用和啟用 DML 觸發程序
在 [物件總管] 中,連接到 Database Engine 的執行個體,然後展開該執行個體。
展開您要的資料庫,展開 [資料表],然後展開包含您要停用之觸發程序的資料表。
展開 [觸發程序],以滑鼠右鍵按一下要停用的觸發程序,然後按一下 [停用]。
若要啟用觸發程序,請按一下 [啟用]。
[Top]
使用 Transact-SQL
刪除 DML 觸發程序
連接到 Database Engine。
在標準列中,按一下 [新增查詢]。
將下列範例複製並貼入查詢視窗中。 執行 CREATE TRIGGER 陳述式即可建立 Sales.bonus_reminder 觸發程序。 若要刪除觸發程序,請執行 DROP TRIGGER 陳述式。
--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
若要停用和啟用 DML 觸發程序
連接到 Database Engine。
在標準列中,按一下 [新增查詢]。
將下列範例複製並貼入查詢視窗中。 執行 CREATE TRIGGER 陳述式即可建立 Sales.bonus_reminder 觸發程序。 若要停用和啟用觸發程序,請分別執行 DISABLE TRIGGER 和 ENABLE TRIGGER 陳述式。
--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
[Top]
請參閱
參考
DISABLE TRIGGER (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)