Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何撤消对数据库所做的update语句_Sql Server 2005_Database Restore_Transaction Log - Fatal编程技术网

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…等中那样使用事务。您可能会发现这在将来很有用。它关闭自动提交。请注意,您必须管理自己的事务