1. 学ぶ
  2. /
  3. コース
  4. /
  5. SQL Server におけるトランザクションとエラー処理

Connected

演習

入れ子の TRY...CATCH でエラー関数を使う

あなたの店舗に新しい電動自転車が入荷したので、在庫を更新する必要があります。

1台あたり $3499.99 の Trek Powerfly 5 - 2018 を2台、1台あたり $1999.99 の New Power K- 2018 を3台、受領したことを登録したいとします。

それらが新モデルだと思い、製品をデータベースに挿入しようとします。しかし、最初の製品はすでに在庫にあることを忘れていました。幸いにも、products テーブルには製品名の一意性を求める制約があります。

そこで、挿入時に起こりうるエラーを制御するスクリプトを用意します。また、発生したエラーを errors テーブルに挿入し、その挿入で失敗した場合には、エラー番号とエラーメッセージを表示したいと考えています。

指示

100 XP
  • エラー処理全体を CATCH ブロックで囲んでください。
  • errors テーブルに 'Error inserting a product' を挿入し、この挿入を別の TRY ブロックで囲んでください。
  • 入れ子のエラー処理を、さらに別の CATCH ブロックで囲んでください。
  • 内側の CATCH ブロックで、エラー行とエラーメッセージを選択してください。