コース: SQL 基本講座

今すぐコースを受講しましょう

今すぐ登録して、23,200件以上登録されている、業界エキスパート指導のコースを受講しましょう。

トリガでdeletedテーブルを使用する

トリガでdeletedテーブルを使用する

コース: SQL 基本講座

トリガでdeletedテーブルを使用する

DML トリガーで処理を実行するとき、 削除されたデータは DELETED テーブルと呼ばれる 一時的なテーブルに保存されます。 トリガーでは DELETED テーブルの値を 利用できます。 このレッスンでは 新しいテーブルとデータを使います。 「オブジェクトエクスプローラー」で データベースを右クリックし、 「新しいクエリ」を作ります。 サンプルの SQL 文を貼り付けます。 前のレッスンで使った テーブルを削除します。 そして新しくテーブルを 2つ作ります。 SQL 文をまとめて選択して 実行します。 次の SQL 文は トリガーを作ります。 CREATE TRIGGER と書き、 トリガーの名前をつけ、 ON の後ろに対象の テーブル名を書き、 FOR DELETE として DELETE が行われた時に実行する トリガーになります。 AS の後ろに 実行したい SQL 文を書きます。 ここでは MyProcess テーブルに INSERT 文でデータを作りますが、 そのデータは 一時的に削除されたデータが入っている DELETED テーブルの BookID と BookName、 そして 「DELETE されました」の文字を作ります。 SQL 文を選択して 実行します。 トリガーができました。 次の SQL 文も トリガーを作ります。 今度は MyBook テーブルに対して UPDATE の時に 実行されるトリガーです。 実行したい SQL 文は UPDATE の時には 元のデータと新しいデータの 両方を記録したいので、 INSERTED テーブルから BookID、 INSERTED テーブルから BookName、 この2つを取り出し DELETED テーブルからも BookID と BookName を 取り出して記録します。 SQL 文を選択して 実行します。 トリガーができました。 まずテーブルのデータを見てみます。 2つのテーブルに 何もデータはありません。 このレッスンでは INSERT に対する トリガーを作っていないので MyProcess テーブルには データができていません。 では、 MyBook テーブルのデータを 削除しましょう。 BookID 2のデータを削除します。 SQL 文を選択して実行します。…

目次