• ベストアンサー

SQL実行エラー時にロールバックするには?

クエリアナライザで複数のSQLを順番に書いて、データ移行スクリプト を作成しています。はじめは BEGIN TRAN ではじめるとして、 最終的に成功したら commit、途中null制約などでエラーが出たら rollbackしたいと考えています。 そういった簡単な制御構造を実現するにはどうしたら良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

IF...ELSE BEGIN...END WHILE GOTO 等を使って実行の流れを制御します。 またエラー発生の有無はグローバル変数@@ERRORで判別します。

kamuatatsu
質問者

お礼

ありがとうございます。 以下の文で流れを制御できました。 IF @@ERROR = 0 BEGIN COMMIT; print '正常終了:COMMITしました。'; END ELSE BEGIN ROLLBACK; print '異常終了:ROLLBACKしました。'; END

関連するQ&A