次の方法で共有


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 トリガーを削除するには

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

  2. 目的のデータベースを展開し、[テーブル] を展開します。次に、削除するトリガーが格納されているテーブルを展開します。

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

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

DML トリガーを有効または無効にするには

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

  2. 目的のデータベースを展開し、[テーブル] を展開します。次に、無効にするトリガーが格納されているテーブルを展開します。

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

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

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

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

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

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

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

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

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

関連項目

参照

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_help (Transact-SQL)

sp_helptrigger (Transact-SQL)

sys.triggers (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)

概念

DML トリガーに関する情報の取得