次の方法で共有


ENABLE TRIGGER (Transact-SQL)

更新 : 2006 年 12 月 12 日

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

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

構文

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

引数

  • schema_name
    トリガが属するスキーマの名前を指定します。DDL トリガまたはログオン トリガの場合、schema_name は指定できません。
  • trigger_name
    有効化するトリガの名前です。
  • ALL
    ON 句のスコープで定義されたすべてのトリガを有効化することを示します。
  • object_name
    DML トリガ trigger_name が実行用に作成されたテーブルまたはビューの名前を指定します。
  • DATABASE
    DDL トリガの場合、trigger_name が、データベース スコープで実行するために作成または変更されたことを示します。
  • ALL SERVER
    DDL トリガまたはログオン トリガの場合、trigger_name が、サーバー スコープで実行するために作成または変更されたことを示します。

解説

トリガを有効化しても、トリガが再作成されるわけではありません。無効化されたトリガは、引き続き現在のデータベースのオブジェクトとして残りますが、起動されることはありません。トリガを有効化すると、そのトリガがプログラムされているイベントが実行されたときに起動されます。トリガを無効化するには、DISABLE TRIGGER を使用します。テーブルに定義された DML トリガも、ALTER TABLE を使用して無効化または有効化できます。

権限

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

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

A. テーブル上の DML トリガを有効化する

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

USE AdventureWorks;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE 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
ENABLE TRIGGER safety ON DATABASE;
GO

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

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

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

参照

関連項目

DISABLE 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 で導入されたログオン トリガの情報を全面的に追加しました。