删除表中一行的对账单和交易记录



我在一个表中只有一行。假设我使用以下语句

BEGIN TRANSACTION

DELETE FROM mytable(现在,如果我们检查表,该行将从表中删除。(

ROLLBACK TRANSACTION(该行将在表中再次可用(。

我的问题是,当我们回滚事务时,SQL Server从哪里恢复数据,或者在事务期间数据临时保存在哪里。

感谢

事务中的所有数据修改都存储在事务日志中,日志中还为撤消记录保留了额外的空间,以备必须回滚时使用。每个事务日志中都有足够的信息,可以反转所做的更改,以便在需要时撤消更改。

如果我们以一个简单的删除操作为例,被删除的记录存储在LOP_delete_ROWS的事务日志条目中,只需付出一些不小的努力,您就可以解码并证明整行都在日志条目中。

如果要回滚事务,则将使用日志中保留的撤消空间,并重新插入该行。撤消保留空间的原因是为了确保事务日志不会在事务中期被填满,从而没有空间完成或回滚。

最新更新