セーブポイントの使用
同僚の Anita から助けを求められました。彼女はセーブポイントを使うスクリプトを用意しましたが、うまく動きません。スクリプトは最初に savepoint1 というセーブポイントをマークし、ある顧客のデータを挿入します。次に、別のセーブポイント savepoint2 をマークし、別の顧客のデータを再度挿入します。その後、両方のセーブポイントをロールバックします。最後に、さらに savepoint3 というセーブポイントをマークし、別の顧客のデータを挿入します。
Anita は、いくつかエラーがあってスクリプトが動かないと言っていますが、修正方法がわかりません。手伝っていただけますか?
この演習はコースの一部です
SQL Server におけるトランザクションとエラー処理
演習の手順
- コードを実行して、エラーがあることを確認します。
- すべてのエラーを修正します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
BEGIN TRAN;
-- Mark savepoint1
savepoint1 SAVE TRAN;
INSERT INTO customers VALUES ('Mark', 'Davis', '[email protected]', '555909090');
-- Mark savepoint2
savepoint2 SAVE TRAN;
INSERT INTO customers VALUES ('Zack', 'Roberts', '[email protected]', '555919191');
-- Rollback savepoint2
savepoint2 ROLLBACK TRAN;
-- Rollback savepoint1
savepoint1 ROLLBACK TRAN;
-- Mark savepoint3
savepoint3 SAVE TRAN;
INSERT INTO customers VALUES ('Jeremy', 'Johnsson', '[email protected]', '555929292');
-- Commit the transaction
COMMIT TRAN;