SQL 事务与视图全解析
1. 事务提交与回滚机制
在 SQL 中,事务的提交遵循一个重要原则:直到“最外层”事务提交,整个事务才会真正提交。而 ROLLBACK 语句对 @@TRANCOUNT 的影响则有所不同,无论嵌套层次多深,ROLLBACK 语句总是将整个事务回滚到最外层事务的开始处,同时将 @@TRANCOUNT 设置为 0。在编写代码时,必须考虑到这一点,因为如果在没有未完成事务的情况下发出 COMMIT 或 ROLLBACK 语句,将会导致错误。
例如,当你在嵌套事务中执行操作时,可能会有如下操作流程:
1. 开始最外层事务。
2. 开始内层事务。
3. 执行一系列操作。
4. 若执行过程中出现错误,发出 ROLLBACK 语句。
5. 整个事务回滚到最外层事务开始处,@@TRANCOUNT 变为 0。
2. 利用保存点(Savepoints)
保存点是一种在不真正开始新事务的情况下开始事务的方法,它仅在嵌套事务中有意义,通过 SAVE TRAN 语句调用。其语法如下:
SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable }
与 BEGIN TRAN 语句不同,SAVE TRAN 语句必须指定保存点名称,并且不会增加 @@TRANCOUNT。当发出 ROLLBACK 语句时,如果提供了保存点名称,那么在 SAVE TRAN 语句之后完成的工作将被回滚,而之前完成的工作不受影响。这使得你可以有选择地保留或丢弃部分工
超级会员免费看
订阅专栏 解锁全文
1535

被折叠的 条评论
为什么被折叠?



