DDL トリガーの実装
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
ここでは、DDL トリガーの作成、DDL トリガーの変更、および DDL トリガーの無効化または削除に役立つ情報を提供します。
DDL トリガーの作成
Transact-SQL CREATE TRIGGER ステートメントを使用することにより、DDL トリガーが作成されます。
DDL トリガーを作成するには
重要
今後のバージョンの SQL Server では、トリガーを使用して結果セットを返す機能が削除される予定です。 結果セットを返すトリガーは、それと連動するように設計されていないアプリケーションでは予期しない動作を起こすことがあります。 新しい開発作業では、トリガーを使用して結果セットを返すことを避け、現在この方法を使用しているアプリケーションについては変更を検討してください。 SQL Server でトリガーを使用して結果セットを返さないようにするには、 disallow results from triggers オプションを 1 に設定します。 今後のバージョンの SQL Server では、このオプションの既定の設定は 1 になります。
DDL トリガーの変更
DDL トリガーの定義を変更する必要がある場合は、トリガーを削除してから作成し直すか、または既存のトリガーの再定義を行います。
DDL トリガーで参照されるオブジェクトの名前を変更する際には、新しい名前が反映されるようにトリガーを変更する必要があります。 したがって、オブジェクトの名前を変更する前に、まずオブジェクトの依存関係を表示して、オブジェクト名の変更により影響を受けるトリガーがあるかどうかを確認してください。
トリガーは、定義が暗号化されるように変更することもできます。
トリガーを変更するには
トリガーの依存関係を表示するには
DDL トリガーの無効化と削除
DDL トリガーが不要になった場合は、そのトリガーを無効にするかまたは削除できます。
DDL トリガーを無効にしても削除はされません。 オブジェクトとして現在のデータベースに残りますが、 トリガーがプログラムされた Transact-SQL ステートメントを実行しても、トリガーは起動しません。 無効になった DDL トリガーは、再度有効にできます。 トリガーを有効にすると、最初に作成したときと同じ方法でトリガーが起動されます。 DDL トリガーが作成されると、既定で有効になります。
DDL トリガーを削除すると、現在のデータベースから削除されます。 DDL トリガーのスコープが設定されているオブジェクトやデータには影響しません。
DDL トリガーを無効にするには
DDL トリガーを有効にするには
DDL トリガーを削除するには