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

Connected

演習

はじめてのエラーハンドリングスクリプト

products テーブルでは、stock 列に格納されるデータを検査する制約が設定されていないことに気づきました。stock は常に 0 以上であるのが自然です。 ところが、次の行に誤りがあります。stock が -1 になっています!

| product_id | product_name | stock | price |
|------------|--------------|-------|-------|
| 6          | Trek Neko+   | -1    | 2799  |

products テーブルに、stock が 0 以上のみ許可されるよう制約を追加するスクリプトを用意したいと考えています。

ただし、この「0 以上のみ許可」の制約を追加すると、stock が -1 の行が 1 行あるため、実行は失敗します。

どのようにスクリプトを準備しますか?

指示

100 XP
  • 制約の追加処理を TRY ブロックで囲みます。
  • products テーブルに制約を追加します。
  • エラーメッセージの処理を CATCH ブロックで囲みます。