Sql server 2005 如何撤消对数据库所做的update语句
这是一个测试环境,我需要一些数据来测试更新查询,但意外地更新了所有行中的列,使其具有错误的数据。我必须使用备份将数据恢复到上一个实例,还是可以利用事务日志中的某些秘密Sql server 2005 如何撤消对数据库所做的update语句,sql-server-2005,database-restore,transaction-log,Sql Server 2005,Database Restore,Transaction Log,这是一个测试环境,我需要一些数据来测试更新查询,但意外地更新了所有行中的列,使其具有错误的数据。我必须使用备份将数据恢复到上一个实例,还是可以利用事务日志中的某些秘密 提前谢谢 有一个称为事务日志的非机密事务日志,您可以从该日志恢复到某个时间点。带有ldf扩展名的恼人的小文件是事务日志,而不是.mdf文件,它是您的普通db数据 除非您截断了事务日志(ldf)或以其他方式弄乱了它,否则您应该能够完全执行所需的恢复(撤消)。除非您将sql封装在事务块中,否则-开始事务、回滚、提交。这是sql ser
提前谢谢 有一个称为事务日志的非机密事务日志,您可以从该日志恢复到某个时间点。带有ldf扩展名的恼人的小文件是事务日志,而不是.mdf文件,它是您的普通db数据
除非您截断了事务日志(ldf)或以其他方式弄乱了它,否则您应该能够完全执行所需的恢复(撤消)。除非您将sql封装在事务块中,否则-开始事务、回滚、提交。这是sql server最危险的事情之一。使用Oracle,您必须实际提交每个事务,这对imho来说要安全得多。如果您的数据库处于完全恢复模式,则您可以尝试使用第三方工具(如)读取事务日志,或者您可以尝试使用DBCC log命令自己执行此操作 如果数据库处于完全恢复状态,那么大量数据存储在事务日志中,但不容易读取,因为MS从未为此修改过官方文档,而且其目的不是恢复,而是确保正确提交事务
然而,阅读它有一些变通方法,比如使用上面的工具(不幸的是,付费工具有试用版)或自己解码DBCC日志的结果 应该像在BEGIN TRAN T1…COMMIT TRAN T1或Rollback…等中那样使用事务。您可能会发现这在将来很有用。它关闭自动提交。请注意,您必须管理自己的事务