sql server中事务回滚的机制是什么?
问问题
4592 次
3 回答
3
看看ROLLBACK TRANSACTION (Transact-SQL)
将显式或隐式事务回滚到事务的开头,或事务内的保存点。
于 2010-02-21T08:11:15.427 回答
3
就它的实现方式而言,事务中的所有数据修改都存储在事务日志中,日志中还为撤消记录保留了额外的空间,以防它必须回滚。每个事务日志中都有足够的信息来撤销所做的更改,以便它可以在需要时撤消更改。(以及在 DR 场景中重放它们)
如果我们以一个简单的删除操作为例(因为我已经解码了这里作为日志内容的示例),被删除的记录存储在 LOP_DELETE_ROWS 的事务日志条目中,并且通过一些非平凡的努力,您可以解码和证明整行都在日志条目内。
如果要回滚事务,则将使用日志中保留的撤消空间,并重新插入该行。undo预留空间的原因是为了保证事务日志不能在事务中被填满,没有空间完成或回滚。
于 2010-02-21T13:13:13.967 回答