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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric の SQL データベース

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server の 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 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 トリガーを有効または無効にするには

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーし、クエリ ウィンドウに貼り付けます。 CREATE TRIGGER文を実行してSales.bonus_reminderトリガーを作成します。 トリガーを無効化・有効化するには、それぞれ DISABLE TRIGGER 文と 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