DDL トリガーの実装

適用対象:SQL ServerAzure SQL DatabaseAzure 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 トリガーを削除するには