エラー発生時のトランザクションのロールバック - SET XACT_ABORT ON と TRY...CATCH BEGIN TRANSACTION と COMMIT TRANSACTION を使って、複数のステートメントをひとつのトランザクションとして実行したいとします。 今回は、そのトランザクションの途中でエラーが発生した時のロールバックのお話です。 今回使うテーブルやデータは こちら のスクリプトで生成できますが、同じ名前の既存のテーブルがあると削除されてしまうのでご注意ください。 SET XACT_ABORT ON と TRANSACTION 次のような Student テーブルと TestResult テーブルがあり、TestResult テーブルの StudentID カラムには Student テーブルの StudentID カラムへの外部キー制約が定義されています。 次のよ
![エラー発生時のトランザクションのロールバック - SET XACT_ABORT ON と TRY...CATCH](https://cdn-ak-scissors.b.st-hatena.com/image/square/631ed35ef51261bbf7281559b4ce3fbfd564ab9f/height=288;version=1;width=512/https%3A%2F%2Fsql55.com%2Fimg%2Fsql55-logo-1.png)