如何从表中恢复旧数据

SNA*_*SNA 2 sql

我在SQL 2008中的表中创建了一个更新语句,该表使用一些错误的数据更新了表.

我没有DB的备份.

这是一些重要的日期,已经更新.

无论如何,我可以从表中恢复旧数据.

谢谢

SNA

And*_*rew 6

基本上没有,除非您想使用商业日志阅读器并尝试使用细齿梳.没有数据库备份可以是'更新简历,离开城镇'的情况 - 严厉但不应该发生.

  • 不要忘记where子句,否则你可能会更新*每个人的*简历:O (9认同)

Red*_*ter 6

安德鲁基本上称之为.我只是想添加一些你可以考虑的想法,如果你是绝望的:

  1. 是否有任何报告或打印件?也许你可以从那里重建数据.
  2. 这些数据是通过网络应用程序输入的吗?如果是这样,您可以在Web服务器日志中找到原始数据,具体取决于应用程序的构建方式等.
  3. 这个应用程序界面(传递数据)是否有任何其他应用程序?他们可能有一个缓冲的数据副本......
  4. 数据可以从任何其他现有数据中获得吗?是否有审计日志表或基于此模式的架构中的其他日期,您可以从中重建原始日期?

编辑:

一些评论者提到在运行它们之前测试更新/删除语句是个好主意.为了成为习惯,如果你有一个简单的方法,它会有所帮助.我通常会创建这样的DELETE语句:

--delete --select * 
from [User]
where UserID=27
Run Code Online (Sandbox Code Playgroud)

要运行选择以测试查询,请突出显示从头select开始的所有内容.如果您对筛选条件满意,则运行删除,突出显示从delete以后开始的所有内容.前面的两个破折号delete是这样的,如果查询意外地运行,它将因语法无效而崩溃.

您可以为UPDATE语句使用类似的构造,尽管它不是那么干净.