这是一个测试环境,我需要一些数据来测试更新查询,但不小心更新了所有行中的一列以得到错误数据。我必须使用备份将数据恢复到以前的实例,还是我可以利用事务日志的一些秘密?
提前致谢。
这是一个测试环境,我需要一些数据来测试更新查询,但不小心更新了所有行中的一列以得到错误数据。我必须使用备份将数据恢复到以前的实例,还是我可以利用事务日志的一些秘密?
提前致谢。
有一个称为事务日志的非秘密事务日志,您可以从它恢复到某个时间点。方法如下...带有 ldf 扩展名的烦人的小文件是事务日志,而不是作为普通数据库数据的 .mdf 文件。
除非您已截断事务日志 (ldf) 或以其他方式处理它,否则您应该能够完全执行您正在寻找的恢复(撤消)类型。
If your database was in full recovery mode then you can try reading transaction log using third party tool such as this one or you can try doing this yourself with DBCC LOG command.
If db is in full recovery then a lot of data is stored in transaction log but it’s not easily readable because MS never polished official documentation for this and because it’s purpose is not recovery but making sure transaction is committed correctly.
However there are workarounds to reading it like using the tool above (paid tool unfortunately but has a trial) or decoding the results of DBCC LOG yourself.
除非您将 sql 包装在事务块中 - 开始事务、回滚、提交。那是关于 sql server 的危险事情之一。使用 Oracle,您必须实际提交每个事务,这更安全。