1. 학습
  2. /
  3. 강의
  4. /
  5. SQL Server におけるトランザクションとエラー処理

Connected

연습 문제

エラー発生時にトランザクションをロールバックする

入社初日に、銀行での送金記録用のトランザクションを設定するタスクが与えられました。

account_id = 1 から $100 を送金し、account_id = 5 に入金する簡単なスクリプトを用意したいと考えています。その後、その入出金を transactions テーブルに登録します。すべて正しく書けたと思いますが、慎重に確認しておきたいですよね。

実はミスがありました。口座 5 の新しいトランザクションを挿入するはずが、存在しない口座 500 に対して挿入してしまっていました。

今後のエラーを防ぐため、作成するスクリプトではエラーが起きた場合にすべての変更をロールバックするようにしてください。問題なく完了した場合は、トランザクションをコミットします。

지침

100 XP
  • トランザクションを開始します。
  • 処理の誤りを修正します。
  • エラーがなければトランザクションをコミットします。
  • CATCH ブロック内でトランザクションをロールバックします。