DDL トリガの実装

ここでは、DDL トリガの作成、DDL トリガの変更、および DDL トリガの無効化または削除に役立つ情報を提供します。

DDL トリガの作成

Transact-SQL CREATE TRIGGER ステートメントを使用することにより、DDL トリガが作成されます。

DDL トリガを作成するには

DDL トリガを削除するには

重要な注意事項重要

今後のバージョンの SQL Server では、トリガを使用して結果セットを返す機能が削除される予定です。結果セットを返すトリガは、それと連動するように設計されていないアプリケーションでは予期しない動作を起こすことがあります。新しい開発作業では、トリガを使用して結果セットを返すことを避け、現在この方法を使用しているアプリケーションについては変更を検討してください。SQL Server 2008 でトリガを使用して結果セットを返さないようにするには、disallow results from triggers オプションを 1 に設定します。今後のバージョンの SQL Server では、このオプションの既定の設定は 1 になります。

注意

サーバー スコープの DDL トリガは、SQL Server Management Studio オブジェクト エクスプローラで [トリガ] フォルダに表示されます。このフォルダは [サーバー オブジェクト] フォルダにあります。データベース スコープの DDL トリガは、[データベース トリガ] フォルダに表示されます。このフォルダは、対応するデータベースの [プログラミング] フォルダにあります。

DDL トリガの変更

DDL トリガの定義を変更する必要がある場合は、トリガを削除してから作成し直すか、または既存のトリガの再定義を行います。

DDL トリガで参照されるオブジェクトの名前を変更する際には、新しい名前が反映されるようにトリガを変更する必要があります。したがって、オブジェクトの名前を変更する前に、まずオブジェクトの依存関係を表示して、オブジェクト名の変更により影響を受けるトリガがあるかどうかを確認してください。

トリガは、定義が暗号化されるように変更することもできます。

トリガを変更するには

トリガの依存関係を表示するには

DDL トリガの無効化と削除

DDL トリガが不要になった場合は、そのトリガを無効にするかまたは削除できます。

DDL トリガを無効にしても削除はされません。無効になったトリガは引き続き現在のデータベースにオブジェクトとして存在します。トリガがプログラムされた Transact-SQL ステートメントを実行しても、トリガは起動しません。無効になった DDL トリガは、再度有効にできます。トリガを有効にすると、最初に作成したときと同じ方法でトリガが起動されます。DDL トリガが作成されると、既定で有効になります。

DDL トリガを削除すると、現在のデータベースから削除されます。DDL トリガのスコープが設定されているオブジェクトやデータには影響しません。

DDL トリガを無効にするには

DDL トリガを有効にするには

DDL トリガを削除するには