イベントは、コールの実行後に自動的に発生したときにトリガは特殊なストアドプロシージャです。
クラス3のSQL Serverは、トリガー
インサートを:、データテーブルにトリガ呼び出しインサートをデータを挿入します。
アップデート:コール更新トリガー更新データ。
削除:削除トリガの実行をデータを削除するとき。
トリガの3種類でSQL Serverは、常に自動的に呼び出されただけの文の後に操作を実行しています。
3つの仮想テーブルには、
トリガが正式に正常に挿入された後に裁判官によって挿入ステートメントの実行時にテーブルの一時的なキャッシュデータ値を挿入しました。
更新されたテーブルの更新データを一時的にキャッシュデータ値を、上記のような機能です。
一時キャッシュデータ値の削除データを削除されたテーブル、上記のように機能。
SQL Serverは、文法の作成と使用をトリガー
作成 トリガ TRIGGER_NAMEを- -名前の作成 には { 表| ビューを } - -テーブルまたは上で定義されたビュー [ 暗号化して] - -暗号化されたメタデータ { {{ について|後| INSTEAD の {} [ INSERT ] [ 、] [ 更新] [ 、] [ 削除] }トリガの実行条件 [ 追記付き] [ レプリケーションのONT ] としての- -実行するトリガー操作 [ {IF更新(列)----は、操作が行われたかを決定します 【及び{|}またはUpdate(カラム)] [ 、... N- ] | IF(COLUMNS_UPDATED(){} bitwise_operator updated_bitmask)- -新しいデータを用いて挿入されているかどうかを決定する {} comparison_operatorの列[ 、... N- ] }] sql_statementは[ 、... N- ] アクション文 } }
後に| |のための代わりに:代わりに、代わりにSQL文を実行するトリガーの前に実行するためのSQL文のトリガー後に実行するため、すべてのSQL文、後に、SQL文を実行するトリガーのため。
COLUMNS_UPDATED():フィールド指定されたパラメータupdated_bitmask挿入および更新データ決意ビット動作へ戻ります。
bitwise_operator:&ビット単位の演算子を、最初のフィールド、第2フィールド10、2番目と3番目のフィールド110、上の一。
ストアドプロシージャは、ストアドプロシージャを削除するには、テーブルには影響しませんテーブルまたはビューに依存せず、トリガがテーブルまたはビューで削除されます:文法の違いは、トリガーは、テーブルまたはビューに基づいており、ストアドプロシージャがある見ることができる以上あります。それは削除されます。
トリガーのインサート使用
例:スコアテーブルにデータを挿入するには、「生徒数」欄には、学生のテーブルに存在しなければならない必要があり、「クラス数は、「テーブルの過程で存在している必要があります。
作成 トリガtrigger_insertを ON スコア のための INSERT ASの DECLARE @xuehao int型、@kehao int型 SELECT @xuehao =学生番号、@kehao = クラス数 から挿入された IFは @xuehao ない で(SELECT学生数から学生) を開始 ROLLBACK トランザクション 印刷" 学生のテーブルを学生の数が存在しない場合、キャンセル挿入データ「 エンド IFは @kehao ない で(SELECTレッスン数からコース) 開始 ROLLBACK トランザクション 印刷「クラス番号が結果テーブルに存在しない、挿入データがキャンセル」 終了