使用保存点
您的同事 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;