次の方法で共有


DML トリガのプランニング ガイドライン

Microsoft SQL Server 2005 には、DML トリガを設計する際に次の 2 つのオプションが用意されています。

  • INSTEAD OF トリガは、トリガを起動する通常の動作の代わりに実行されます。また、INSTEAD OF トリガは、1 つ以上のベース テーブルを持つビューに定義することもでき、ビューでサポートされる更新の種類を拡張できます。
  • AFTER トリガは、INSERT、UPDATE、または DELETE ステートメントの動作が実行された後に実行されます。AFTER を指定することは、FOR を指定することと同じ意味を持ちます。AFTER トリガはテーブルにのみ指定できます。

次の表は、AFTER トリガと INSTEAD OF トリガの機能を比較したものです。

機能 AFTER トリガ INSTEAD OF トリガ

適用範囲

テーブル

テーブルとビュー

テーブルまたはビューごとの数

トリガを起動する動作 (UPDATE、DELETE、および INSERT) ごとに複数指定できます。

トリガを起動する動作 (UPDATE、DELETE、および INSERT) ごとに 1 つしか指定できません。

連鎖参照

制限はありません。

INSTEAD OF UPDATE トリガと DELETE トリガは、参照整合性制約の連鎖の対象となっているテーブルでは許可されません。

実行されるタイミング

次の処理の後

  • 制約処理
  • 宣言参照動作
  • inserted テーブルと deleted テーブルの作成
  • トリガを起動する動作

次の処理の前

  • 制約処理

次の処理の代わり

  • トリガを起動する動作

次の処理の後

  • inserted テーブルと deleted テーブルの作成

実行の順序

最初と最後の実行内容を指定できます。

適用なし

inserted テーブルと deleted テーブル内の varchar(max)nvarchar(max)、および varbinary(max) の列参照。

使用可能

使用可能

inserted テーブルと deleted テーブル内の textntext、および image の列参照。

使用不可

使用可能

参照

概念

inserted テーブルと deleted テーブルの使用

ヘルプおよび情報

SQL Server 2005 の参考資料の入手