[求助]急:我用UPDATE语句犯了一个大错误!请大伙看看该怎么办
<span style="FONT-SIZE: 13px;">事故是这样的!我为了图方便,用UPDATE语句更新几十个资料的进价,结果忘了加WHERE语句,天啊,我把几万条记录的进价都改了,冷静下来后,想起了备份,不过是另一个机子,记录一样的,但是字段不完全相同(不是字段名称不一样,而是指备份中的字段只是被错改表的一部分),但是进价字段的值在改之前是一样的,幸好这个备份没有删除!<br/>现在所有业务都停了下来,不敢进行!这个备份是标准文本文档,(也就是另一个机子导出来的)。<br/>请问,我现在该怎么办,有没有办法把备份的进价字段值覆盖被错改的那张表里的进价值呢?<br/>如果可以,请大家教我怎么改法?<br/>请大家帮帮忙,如果明天9点以前无法改好的话,我只有辞职了!!!!<br/></span> 那个帮帮他呀 <p>可以这样解决: </p><p> 1、把备份中的那个表table1 bcp out出来</p><p> 2、 bcp in 当前数据库 成table2 。</p><p> 3然后的步骤就好做了 ,就是update了。</p> 楼上的办法不错,试一下吧。问题比较大,不会一下子就能搞定的。 <p><font size="2">虽然闯的祸很大,不过既然有备份,还是比较容易恢复,不要太着急:)</font></p><p><font size="2">做这种恢复操作,一定要谨慎。</font><font size="2">建议按以下步骤进行:</font></p><p><font size="2">1. 锁定业务用户帐号,备份当前库。以免操作错误,将来还可恢复。</font></p><p><font size="2"> sp_locklogin UserXX, 'lock'</font></p><p><font size="2"> dump database DBXX to ...</font></p><p><font size="2">2. 建立零时表,导入数据。在当前数据库建立一个和备份结构相同的零时表tempTable,然后将以前备份的表bcp in到tempTable,现在所有用到的数据都在一个DataServer上了。</font></p><p><font size="2">3. 验证恢复Update条件。假设误操作的表名为wrongTable,写出Update语句:</font></p><p><font size="2"> Update wrongTable Set Price = tt.Price </font></p><p><font size="2"> From wrongTable wt, tempTable tt </font></p><p><font size="2"> Where wt.Key = tempTable.Key</font></p><p><font size="2"> 先不要执行,用Select ... From ... 加上上面的Where条件验证一下Update的条件是否正确。</font></p><p><font size="2">4. 如果上一步没有问题, 执行Update。此时数据应该恢复为正确的了。</font></p><p><font size="2">5. 删除零时表,解锁业务用户帐号。</font></p><p><font size="2"> Drop Table tempTable</font></p><p><font size="2"> <font size="2"> sp_locklogin UserXX, 'unlock'</font><p> </p></font></p><p> </p> 后来呢,这哥们搞好了么?{:soso_e100:}
页:
[1]