我在sql查询分析器update忘了写where id=xx了,这个字段的数据全改了有没有办法恢复上一步的操作啊,我的天

解决方案 »

  1.   

    应该可以,去SQL版问吧,用日志...
    总没我惨,我是用truncate table 误清了一个表,哭都哭不回来
      

  2.   

    update或delete语句忘带了where子句,或where子句精度不够,执行之后造成了严重的后果,
    这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份
    或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
    只能恢复到最近一次的备份的数据了。
      

  3.   

    以下简单说明恢复数据方法:
    1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进
    进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
    backup log dbName to disk='fileName'
    2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢

    restore database dbName from disk='fileName' with norecovery
    3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻
    restore log dbName from disk='fileName'
    with stopat='date_time'
      

  4.   

    在查询分析器里立即执行
    rollback
      

  5.   

    用第三方工具Log Explorer 3.2http://www.ttdown.com/SoftDown.asp?ID=14562
    http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471
    解压缩密码 www.heibai.net
    http://www.ttdown.com/softview_8647.htmLog Explorer for SQL Server v4.0.2
    http://js.fixdown.com/soft/8324.htm注册机产生的是注册码,是两个用解压缩密码解开后,压缩包里也有一个注册机的打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
    选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
    点击“View DDL Commands”里面就有很多drop table 命令
    点击下面的“undo”按钮是生成表结构的语句(create table ....)
    点击下面的“Salvage”按钮是生成插入语句的(insert into ...values....)
    (以上lynx1111提供)想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
    T-sql代码就可以了例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....
    使用经验总结帖:
    http://community.csdn.net/Expert/topic/2954/2954818.xml?temp=.9148676
      

  6.   

    这事我也干过,还好我用的oracle数据库,比你幸福一些