SQL Server や T-SQL を初めて学ぶ人のための学習サイトです。 便利なクエリーやチューニングの仕方なども掲載しています。
SQL Server 入門
T-SQL 入門
便利なT-SQL&クエリー集
SQL Server&T-SQLに関するコラム
サイト情報
MCTS: SQL Server 2008, Database Development
サイト内検索
カスタム検索
ホーム > 便利なT-SQL&クエリー集 > 全トリガー(trigger) を無効化(disable) / 有効化(enable) する

全トリガー(trigger) を無効化(disable) / 有効化(enable) する

トリガー(trigger) を無効化(disable) / 有効化(enable) するには?

一時的に全トリガー (trigger) を無効化 (disable) したい時があるかもしれません。

そんな時に便利なスクリプトをご紹介します。

あるテーブルの特定のトリガーの無効化(disable) / 有効化(enable)

まずはあるテーブルのあるトリガーを無効化(disable) / 有効化(enable)するスクリプトから見てみましょう。

ALTER TABLE [テーブル名] DISABLE TRIGGER [トリガー名];

ALTER TABLE [テーブル名] ENABLE TRIGGER [トリガー名];

または

DISABLE TRIGGER [トリガー名] ON [テーブル名];

ENABLE TRIGGER [トリガー名] ON [テーブル名];

あるテーブルの全てのトリガーの無効化(disable) / 有効化(enable)

次にあるのテーブルの全てのトリガーを無効化(disable) / 有効化(enable)するスクリプトです。

ALTER TABLE [テーブル名] DISABLE TRIGGER ALL;

ALTER TABLE [テーブル名] ENABLE TRIGGER ALL;

先程と同じ ALTER TABLE を使ってトリガー名の変わりに ALL というキーワードを指定します。

データベースの全トリガーの無効化(disable) / 有効化(enable)

最後にデータベースの全トリガーを無効化(disable) / 有効化(enable)する方法です。

現在一番簡単なのは、ドキュメントされていない sp_MSforeachtable を使って以下のようにスクリプトを実行する方法です。

sp_MSforeachtable "ALTER TABLE ? DISABLE TRIGGER ALL";

sp_MSforeachtable "ALTER TABLE ? ENABLE TRIGGER ALL";

ただ、sp_MSforeachtable はドキュメントされていないストアードプロシジャーなのでいつどうなるかわかりません。

手動で一時的に全トリガー(trigger) を無効化(disable) / 有効化(enable)する時にのみ使うのが良いと思います。



ホーム > 便利なT-SQL&クエリー集 > 全トリガー(trigger) を無効化(disable) / 有効化(enable) する

© 2014 SQL Server 入門