次の方法で共有


DML トリガーの削除または無効化

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 の DML トリガーを削除または無効にする方法について説明します。

このトピックについて

開始する前に

推奨事項

  • トリガーが削除されると、現在のデータベースから削除されます。 テーブルとその基になっているデータは影響を受けません。 テーブルを削除すると、テーブル上のすべてのトリガーが自動的に削除されます。

  • トリガーは、作成時に既定で有効になります。

  • トリガーを無効にしても削除されません。 トリガーは、現在のデータベース内のオブジェクトとして引き続き存在します。 ただし、プログラムされた INSERT、UPDATE、または DELETE ステートメントが実行された場合、トリガーは起動しません。 無効になっているトリガーは、再び有効にすることができます。 トリガーを有効にしても、再作成されません。 トリガーは、最初に作成されたときと同じ方法で起動します。

安全

権限

DML トリガーを削除するには、トリガーが定義されているテーブルまたはビューに対する ALTER 権限が必要です。

DML トリガーを無効または有効にするには、少なくとも、トリガーが作成されたテーブルまたはビューに対する ALTER 権限がユーザーに付与されている必要があります。

SQL Server Management Studio の使用

DML トリガーを削除するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. 目的のデータベースを展開し、[ テーブル] を展開し、削除するトリガーを含むテーブルを展開します。

  3. [ トリガー] を展開し、削除するトリガーを右クリックし、[ 削除] をクリックします。

  4. [ オブジェクトの削除 ] ダイアログ ボックスで、削除するトリガーを確認し、[ OK] をクリックします。

DML トリガーを無効にして有効にするには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. 目的のデータベースを展開し、[ テーブル] を展開し、無効にするトリガーを含むテーブルを展開します。

  3. [ トリガー] を展開し、無効にするトリガーを右クリックし、[ 無効] をクリックします。

  4. トリガーを有効にするには、[ 有効] をクリックします。

Transact-SQL の使用

DML トリガーを削除するには

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付けます。 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 トリガーを無効にして有効にするには

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付けます。 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)