次の方法で共有


DISABLE TRIGGER (Transact-SQL)

更新 : 2006 年 12 月 12 日

DML トリガ、DDL トリガ、またはログオン トリガを無効にします。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

 DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL } ON { object_name | DATABASE | ALL SERVER } [ ; ]

引数

  • schema_name
    トリガが属するスキーマの名前を指定します。DDL トリガまたはログオン トリガの場合、schema_name は指定できません。
  • trigger_name
    無効にするトリガの名前を指定します。
  • ALL
    ON 句の有効範囲で定義されたすべてのトリガを無効にすることを示します。

    ms189748.Caution(ja-jp,SQL.90).gif注意 :
    SQL Server では、マージ レプリケーション用にパブリッシュされたデータベースにトリガを作成します。パブリッシュされたデータベースで ALL を指定すると、これらのトリガが無効になり、レプリケーションが中断されます。現在のデータベースがマージ レプリケーション用にパブリッシュされていないことを確認してから、ALL を指定してください。
  • object_name
    DML トリガ trigger_name が実行用に作成されたテーブルまたはビューの名前を指定します。
  • DATABASE
    DDL トリガの場合、trigger_name が、データベース スコープで実行するために作成または変更されたことを示します。
  • ALL SERVER
    DDL トリガまたはログオン トリガの場合、trigger_name が、サーバー スコープで実行するために作成または変更されたことを示します。

解説

既定では、トリガは作成されたときに有効になります。トリガを無効にしてもトリガは削除されず、オブジェクトとして現在のデータベースに残りますが、トリガがプログラムされた Transact-SQL ステートメントを実行しても、トリガは起動しません。トリガは、ENABLE TRIGGER を使用することにより再度有効にできます。テーブルに定義された DML トリガも、ALTER TABLE を使用して無効または有効にできます。

権限

DML トリガを無効にするには、少なくともトリガが作成されたテーブルまたはビューに対する ALTER 権限が必要です。

サーバー スコープ (ON ALL SERVER) の DDL トリガまたはログオン トリガを無効にするには、サーバーに対する CONTOROL SERVER 権限が必要です。データベース スコープ (ON DATABASE) の DDL トリガを無効にするには、現在のデータベースに対する ALTER ANY DATABASE DDL TRIGGER 権限が必要です。

A. テーブルの DML トリガを無効にする

次の例では、テーブル Address に作成されたトリガ uAddress を無効にします。

USE AdventureWorks;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO

B. DDL トリガを無効にする

次の例では、データベース スコープの DDL トリガ safety を作成し、無効にします。

IF EXISTS (SELECT * FROM sys.triggers
    WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety ON DATABASE;
GO
CREATE TRIGGER safety 
ON DATABASE 
FOR DROP_TABLE, ALTER_TABLE 
AS 
   PRINT 'You must disable Trigger "safety" to drop or alter tables!' 
   ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO

C. 同じスコープに定義されたすべてのトリガを無効にする

次の例では、サーバー スコープで作成されたすべての DDL トリガおよびログオン トリガを無効にします。

USE AdventureWorks;
GO
DISABLE Trigger ALL ON ALL SERVER;
GO

参照

関連項目

ENABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

新しい内容 :
  • SQL Server 2005 Service Pack 2 で導入されたログオン トリガの情報を全面的に追加しました。