- 2017/05/10
- 2分で読める
-
- W
- C
- r
- i
- M
-
+7
に適用される。 SQL Server (サポートされるすべてのバージョン) Azure SQL Database
トリガーを無効にします。
Transact-SQL Syntax Conventions
Syntax
DISABLE TRIGGER { trigger_name | ALL } ON { object_name | DATABASE | ALL SERVER }
注
SQL Server 2014 以前の Transact-SQL 構文は、前のバージョンのドキュメントでご確認ください。
引数
schema_name
トリガーが属するスキーマの名前です。 schema_name は DDL またはログオン トリガには指定できません。
trigger_name
Is the name to be disabled.
ALL
Indicate that all triggers defined at the scope of the ON clause is disabled.
Caution
SQL Server はマージ レプリケーション用に公開されているデータベースでトリガを作成します。 パブリッシュされたデータベースでALLを指定すると、これらのトリガが無効になり、レプリケーションが中断されます。
オブジェクト名
DMLトリガーのトリガー名が実行するために作成されたテーブルまたはビューの名前です。
DATABASE
DDLトリガーの場合、トリガー名がデータベース範囲で実行するために作成または変更されたことを示します。
ALL SERVER
適用対象です。 SQL Server 2008以降。
DDLトリガでは、trigger_nameがサーバースコープで実行されるように作成または変更されたことを示します。 ALL SERVER はログオン トリガーにも適用されます。
注意
このオプションは含まれるデータベースでは使用できません。
Remarks
トリガーは作成時にデフォルトで有効になっています。 トリガーを無効にすると、トリガーは削除されません。 トリガは、現在のデータベースにオブジェクトとしてまだ存在します。 しかし、トリガがプログラムされたTransact-SQL文が実行されたとき、トリガは起動しません。 トリガは、ENABLE TRIGGERを使用して、再度有効にすることができます。 ALTER TABLEを使用して、テーブル上で定義されたDMLトリガーを無効または有効にすることができます。
権限
DMLトリガを無効にするには、最低でも、ユーザはトリガが作成されたテーブルまたはビューのALTER権限を持っていなければなりません。
サーバ スコープ(ON ALL SERVER)またはログオン トリガのDDLトリガを無効にするには、ユーザはサーバ上でCONTROL SERVER権限を持っている必要があります。 データベース スコープ (ON DATABASE) の DDL トリガーを無効にするには、最低でも、ユーザーは現在のデータベースで ALTER ANY DATABASE DDL TRIGGER 権限を持っていなければなりません。
例
次の例は、AdventureWorks2012 データベースで説明しています。 テーブル上のDMLトリガーを無効にする
次の例は、テーブルPerson
上に作成されたトリガーuAddress
を無効にする。
DISABLE TRIGGER Person.uAddress ON Person.Address; GO
B. DDLトリガを無効にする
次の例は、データベース スコープでDDLトリガsafety
を作成し、それを無効にします。
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トリガーを無効にしています。
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)