使用儲存點
你的同事 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;