SQLServerでトリガーを扱ってみる

スポンサーリンク

INSERT、UPADTE、DELETEトリガーを扱ってみる

SQLServerにはテーブルに対して「トリガー」を設定することが
でき、テーブルに挿入、更新、削除されるごとに
それらの処理を呼び出すことが可能です。

テーブルの準備

今回はデータを挿入、更新、削除されるテーブルと
そのトリガーでレコードが自動的に挿入されるテーブルを
用意します。

INSERTトリガー

test_main_tableにデータが挿入されると呼び出されるトリガーを
作成します。

このトリガーではtest_main_tableに挿入された内容と、
トリガーの種別「1」をtest_sub_tableに設定します。
test_main_tableに挿入された行のデータは「inserted」という
特殊なテーブルから取得できます。

UPDATEトリガー

test_main_tableのデータが更新されると呼び出されるトリガーを
作成します。

このトリガーではtest_main_tableに更新された内容と、
トリガーの種別「2」をtest_sub_tableに設定します。
test_main_tableで更新された行のデータは「inserted」という
特殊なテーブルから取得できます。

DELETEトリガー

test_main_tableのデータが削除されると呼び出されるトリガーを
作成します。

このトリガーではtest_main_tableで削除された内容と、
トリガーの種別「3」をtest_sub_tableに設定します。
test_main_tableで削除された行のデータは「deleted」という
特殊なテーブルから取得できます。

INSERT,UPDATE,DELETEトリガーの動作確認

test_main_tableにデータを挿入し、そのデータを更新後、
削除します。

上記のSQLを実行後test_sub_tableの内容を検索します。

実行結果は

となり、データ挿入時、更新時、削除時にそれぞれの
トリガーが動作していることが確認できます。
(trigger_kindがそれぞれのトリガーに対応しています。)

トリガーの注意事項

トリガーで実行したSQLでエラーが発生すると
トランザクションの状況によってはロールバックが発生し、
メインテーブルの変更も無効になったりするので
注意が必要です。

SQL Server
スポンサーリンク
色白おばけをフォローする

おすすめプログラミングスクール

「侍エンジニア塾」は、未経験者でも結果が出せるプログラミング学習サービスです。
専属のインストラクターとの対面かSkypeでのレッスンを通じてプログラミングスキルを身につけて頂き、就職や転職までサポートします。
「侍エンジニア塾」の『3つ』の大きな特徴

  1. 完全マンツーマンレッスン
  2. フルオーダーメイドカリキュラム作成
  3. 独立・起業・フリーランス支援

誰もが自分の技術で稼げる人材になるための教育プログラム
TECH::EXPERTのこだわりは「実務的な教育コンテンツ」と「徹底したサポート体制」の2つです。

  1. 現場で使える実践的な技術が身につく
    有名企業のエンジニアへヒアリングを重ね、1年かけて創り上げた教育プログラムがあなたを実務レベルの即戦力エンジニアへ高めます
  2. 学習方法はライフスタイルに合わせて学べます
    ・一気にエンジニアへ駆け上がる「短期集中スタイル」
    ・無理なく確実にエンジニアへ「週末集中スタイル」
    ・自分のペースで自由に学ぶ「オンラインスタイル」

TECH::CAMP(エンジニアスクール)。
【Webアプリケーションコース】
全くの未経験からWebアプリケーション開発に必要なスキルを全て学ぶことができます。
【iPhoneアプリコース】
全くの未経験から最新の開発言語Swiftを用いてiPhoneアプリ開発を学ぶことができます。
自分だけのiPhoneアプリつくって世界に向けてリリースしたい方には自信を持っておすすめできる内容です。

ソフトウェア開発日記
タイトルとURLをコピーしました