DML トリガーの削除または無効化
このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、DML トリガーを削除または無効にする方法について説明します。
このトピックの内容
作業を開始する準備:
推奨事項
セキュリティ
DML トリガーを削除または無効にするために使用するもの:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
推奨事項
トリガーを削除すると、現在のデータベースから削除されます。 トリガーの基になっているテーブルとデータは影響を受けません。 テーブルを削除すると、そのテーブルについて設定されたトリガーはすべて自動的に削除されます。
トリガーは、作成時に既定で有効になります。
トリガーを無効にしても削除されません。 無効になったトリガーは引き続き現在のデータベースにオブジェクトとして存在します。 ただし、トリガーを起動するようにプログラミングされている INSERT、UPDATE、DELETE のいずれかのステートメントを実行してもトリガーは起動されません。 無効になったトリガーは、再度有効にできます。 トリガーを有効化しても、トリガーが再作成されるわけではありません。 トリガーは、最初に作成したときと同じ動作で起動されます。
セキュリティ
権限
DML トリガーを削除するには、そのトリガーが定義されているテーブルまたはビューに対する ALTER 権限が必要です。
DML トリガーを無効または有効にするには、少なくともトリガーが作成されたテーブルまたはビューに対する ALTER 権限が必要です。
[Top]
SQL Server Management Studio の使用
DML トリガーを削除するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
目的のデータベースを展開し、[テーブル] を展開します。次に、削除するトリガーが格納されているテーブルを展開します。
[トリガー] を展開し、削除するトリガーを右クリックして、[削除] をクリックします。
[オブジェクトの削除] ダイアログ ボックスで、削除対象のトリガーを確認し、[OK] をクリックします。
DML トリガーを有効または無効にするには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
目的のデータベースを展開し、[テーブル] を展開します。次に、無効にするトリガーが格納されているテーブルを展開します。
[トリガー] を展開し、無効にするトリガーを右クリックして、[無効化] をクリックします。
トリガーを有効にするには、[有効化] をクリックします。
[Top]
Transact-SQL の使用
DML トリガーを削除するには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーし、クエリ ウィンドウに貼り付けます。 Sales.bonus_reminder トリガーを作成するには、CREATE TRIGGER ステートメントを実行します。 トリガーを削除するには、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 トリガーを有効または無効にするには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーし、クエリ ウィンドウに貼り付けます。 Sales.bonus_reminder トリガーを作成するには、CREATE TRIGGER ステートメントを実行します。 トリガーを無効または有効にするには、それぞれ、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)