You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server单表单行删除事务回滚时数据临时存储位置咨询

SQL Server事务回滚数据恢复相关问题解答

核心结论

  • 事务执行期间被删除的临时数据,存储在*事务日志(Transaction Log)*中
  • 执行ROLLBACK TRANSACTION回滚时,SQL Server直接从该事务对应的事务日志记录中恢复被删除的数据

详细原理说明

SQL Server所有数据修改操作都会遵循预写日志(WAL)机制,先写入事务日志,再修改实际的数据页。执行DELETE操作时事务日志会生成两类关联记录:

  1. 操作本身的执行记录,标记对应数据行已删除
  2. 该操作对应的撤销(undo)记录,完整保存被删除行的全部原始数据(也叫数据前镜像),用于后续可能的回滚操作

你在未提交事务时查询不到被删除的行,是因为SQL Server默认的读提交隔离级别下,读操作会跳过未提交事务修改的数据页,并非数据已经被永久移除。
触发回滚时,SQL Server会读取该事务对应的所有undo记录,反向执行已完成的修改操作:针对DELETE操作,就会把日志中存储的原始行数据重新插回原数据表对应位置,完成数据恢复。


内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 01:27:04