このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 の DML トリガーを削除または無効にする方法について説明します。
このトピックについて
作業を開始する準備:
DML トリガーを削除または無効にするには、次を使用します。
開始する前に
推奨事項
トリガーが削除されると、現在のデータベースから削除されます。 テーブルとその基になっているデータは影響を受けません。 テーブルを削除すると、テーブル上のすべてのトリガーが自動的に削除されます。
トリガーは、作成時に既定で有効になります。
トリガーを無効にしても削除されません。 トリガーは、現在のデータベース内のオブジェクトとして引き続き存在します。 ただし、プログラムされた INSERT、UPDATE、または DELETE ステートメントが実行された場合、トリガーは起動しません。 無効になっているトリガーは、再び有効にすることができます。 トリガーを有効にしても、再作成されません。 トリガーは、最初に作成されたときと同じ方法で起動します。
安全
権限
DML トリガーを削除するには、トリガーが定義されているテーブルまたはビューに対する ALTER 権限が必要です。
DML トリガーを無効または有効にするには、少なくとも、トリガーが作成されたテーブルまたはビューに対する ALTER 権限がユーザーに付与されている必要があります。
SQL Server Management Studio の使用
DML トリガーを削除するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
目的のデータベースを展開し、[ テーブル] を展開し、削除するトリガーを含むテーブルを展開します。
[ トリガー] を展開し、削除するトリガーを右クリックし、[ 削除] をクリックします。
[ オブジェクトの削除 ] ダイアログ ボックスで、削除するトリガーを確認し、[ OK] をクリックします。
DML トリガーを無効にして有効にするには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
目的のデータベースを展開し、[ テーブル] を展開し、無効にするトリガーを含むテーブルを展開します。
[ トリガー] を展開し、無効にするトリガーを右クリックし、[ 無効] をクリックします。
トリガーを有効にするには、[ 有効] をクリックします。
Transact-SQL の使用
DML トリガーを削除するには
データベース エンジンに接続します。
[標準] バーから、新しいクエリをクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付けます。 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 トリガーを無効にして有効にするには
データベース エンジンに接続します。
[標準] バーから、新しいクエリをクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付けます。 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
こちらもご覧ください
トリガーを変更 (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)
システムトリガーイベント (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
サーバートリガー (sys.server_triggersTransact-SQL)
sys.server_trigger_events (Transact-SQL) サーバートリガーイベント
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)