2005年07月21日

トリガ

トランザクション(トリガイベント)実行前後のステートメントを定義した特殊なストアドプロシージャ
トリガ自体はトリガイベント実行時に自動実行 → 直接呼出し不可

○ トリガの用途
基本的に制約で対応できない複雑な機能を処理するために使用
データの整合性保持 (← 参照整合性制約)
  テーブルや列の値の整合性を保持するため、アプリケーションに依存せずデータを自動処理
初期値のセット (← デフォルト制約)
  他の行やテーブルなどとの関係で初期値を求めるような複雑な処理
値の妥当性チェック (← チェック制約)
  他の行やテーブルなどとの関係で値の妥当性をチェックするような複雑なチェック
整合性保持と初期値セットは AFTER トリガで実現
  妥当性チェックはステートメント内で処理または INSTEAD OF トリガで実現
○ AFTER トリガ
トリガイベント実行後に起動
1つのトリガイベントに複数の AFTER トリガを設定可
トリガの最初と最後の実行順序を指定可
 
  sp_settriggerorder 'トリガ名', '{first|last|none}', 'トリガイベント
 
  設定状況は OBJECTPROPERTY 関数で確認可
○ INSTEAD OF トリガ
トリガイベントを実行する代わりに起動
更新不可能なビューでも更新をサポート
  複数テーブル結合ビュー等では同時に複数のベーステーブルの更新不可
1つのトリガイベントに対し1つの INSTEAD OF トリガのみ設定可
各イベントのステートメントから渡されるデータ値に対して拡張整合性チェックを実行
posted by w@ko at 19:44|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。