sql 回滚语句

我数据库执行update命令时忘了加where条件,结果修改了所有记录,我原意只是想修其中一条记录,那些记录有100000多条,手工改回来要人命的,有没有办法回滚到upd... 我数据库执行update命令时忘了加where条件,结果修改了所有记录,我原意只是想修其中一条记录,那些记录有100000多条,手工改回来要人命的,有没有办法回滚到update执行之前的操作,各位救我一命!谢谢!在线等!
此语句如何使用,如:我执行的语句是:update person set per_name='何足道' ,如何利用rollback transaction回滚到update句之前的操作,给个例句好吗~~??谢谢!
展开
 我来答
mxm_1123
2007-11-14 · TA获得超过1779个赞
知道大有可为答主
回答量:496
采纳率:0%
帮助的人:0
展开全部
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份

或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。

以下简单说明恢复数据方法:
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'

以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大。。。

当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利
用上述方法来恢复数据的...
圣鸾OJ
2015-10-01 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:114万
展开全部
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份

或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。

以下简单说明恢复数据方法:
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'

以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大。。。

当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利
用上述方法来恢复数据的...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呆猪佩奇
2007-11-14 · TA获得超过2233个赞
知道小有建树答主
回答量:1167
采纳率:50%
帮助的人:367万
展开全部
你用的是什么dbms?
如果你是
begin tran
update HAHA set AGE = 34
然后再用ROLLBACK可以恢复的.但是如果你没有把更新语句写在事务里的话,就无法恢复了.
最好说明你所用的DBMS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栾聪丘夜梅
2019-04-13 · TA获得超过3851个赞
知道大有可为答主
回答量:3182
采纳率:32%
帮助的人:233万
展开全部
你要用set
xact_abort
(transact-sql)
指定当
transact-sql
语句出现运行时错误时,sql
server
是否自动回滚到当前事务。

set
xact_abort

on
时,如果执行
transact-sql
语句产生运行时错误,则整个事务将终止并回滚。

set
xact_abort

off
时,有时只回滚产生错误的
transact-sql
语句,而事务将继续进行处理。如果错误很严重,那么即使
set
xact_abort

off,也可能回滚整个事务。off
是默认设置。
编译错误(如语法错误)不受
set
xact_abort
的影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弓素塔和雅
2020-03-21 · TA获得超过3562个赞
知道大有可为答主
回答量:3149
采纳率:27%
帮助的人:246万
展开全部
在数据库的日志里面好像可能改回来.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式