Sql server 2008 在SQL Server 2008中撤消表更新
我在SQLServer2008中意外地更新了一个表,我是通过逐单元格复制来从另一个表更新表的,但是我已经覆盖了原始表。是否有一种方法可以将我的表内容还原为原来的状态?否。如果您提交了事务,则还原原始表的唯一方法是从您的最新备份中获取它。如果您只有备份,则将其还原到另一个数据库并仅移动表(这样不会影响其他表)。如果您也有事务日志备份,那么您还可以执行时间点恢复我听说有一些工具可以在某些情况下撤消某些操作。这里有一篇有趣的文章,介绍如何在这种情况下最大限度地减少数据丢失,其中包括一些工具的链接Sql server 2008 在SQL Server 2008中撤消表更新,sql-server-2008,tsql,database-backups,database-restore,Sql Server 2008,Tsql,Database Backups,Database Restore,我在SQLServer2008中意外地更新了一个表,我是通过逐单元格复制来从另一个表更新表的,但是我已经覆盖了原始表。是否有一种方法可以将我的表内容还原为原来的状态?否。如果您提交了事务,则还原原始表的唯一方法是从您的最新备份中获取它。如果您只有备份,则将其还原到另一个数据库并仅移动表(这样不会影响其他表)。如果您也有事务日志备份,那么您还可以执行时间点恢复我听说有一些工具可以在某些情况下撤消某些操作。这里有一篇有趣的文章,介绍如何在这种情况下最大限度地减少数据丢失,其中包括一些工具的链接 您可
您可能想在ServerFault上问这个问题,有些系统管理员可能更了解这个问题。这个工具说它可以做到这一点,不过有点贵。有一个试用期,可能足够长,可以收回您的数据:
检查此链接。它显示了如何使用事务日志恢复值 本文介绍了如何在意外情况下恢复已删除的数据。如果我们知道数据被删除的时间,我们就可以恢复被删除的行。我们可以使用LSN(日志序列号)实现这一目标。它显示了通过使用LSN值检查事务日志来恢复已删除行的示例。对于更新,请使用“LOP\u MODIFY\u ROW” 删除行后,使用以下查询检查日志
Select [Current LSN] LSN], [Transaction ID], Operation, Context, AllocUnitName
FROM
fn_dblog(NULL, NULL)
WHERE Operation = 'LOP_DELETE_ROWS'
根据transactionID和受影响的行数,筛选结果集。然后使用还原数据库
从日志还原值
注意:最好在您意识到意外修改/删除后立即执行此恢复。数据库中发生的操作越多,事务日志值被覆盖的可能性就越高。我听说SQL Server中有一个东西,我想它叫做事务日志,它包含了我所做的所有事务,但我不确定@sikas-你知道你的数据库采用什么恢复模式吗?@sikas-不是pablo发表评论的!您可以通过以下其中一种方法(尽管我认为除非您进行过数据库备份,否则您仍会使用第三方工具来读取日志)来了解如何找到这些事务日志备份?询问您的DBA,或者询问您的DBA如何设置此数据库和备份策略,我是安装SQL Server的人,我把它安装在我的个人电脑上而不是公司电脑上,但我不知道在哪里可以找到这些日志,也不知道这些日志存储在哪里!您是否制定过备份/维护计划?如果没有,您将没有事务日志备份