SQL语句如何rollback
数据库中不小心Update了一张表,想恢复到Update之前的状态,请问我rollback语句应该怎么写。我Update的语句如下:UpdateBDsetIsActive...
数据库中不小心Update 了一张表,想恢复到Update之前的状态,请问我rollback语句应该怎么写。我Update的语句如下:Update BD set IsActive=‘0’,comments='Old 2000' ;
展开
5个回答
展开全部
rollback是针对事务的,你如果没有在执行语句之前开启事务,那么无法rollback,建议你还是想别的办法吧,事务语句如下(sqlserver的给你借鉴):
--开启事务
begin tran
--执行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--执行错误事务回滚
rollback
--如果正确进行事务提交
commit
可以勾选一句执行一句,但是commit了就不能rollback
--开启事务
begin tran
--执行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--执行错误事务回滚
rollback
--如果正确进行事务提交
commit
可以勾选一句执行一句,但是commit了就不能rollback
2015-12-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
回滚要放在事务里面进行,才能进行回滚;sql里面的事务使用关键字TransAction
1:可以用try catch捕获
begin try
begin tran
update table set a=1;
commit tran
end Try
begin catch
rollback tran
end catch
2:可以使用error 全局变量
begin tran
update tablename set ad=1111
if @@error<>0 begin rollback end
commit tran
注意:如果一个事务写了 begin trans ,后面一定要跟上 commit tran或 rollback transaction ,否则可能导致被锁
1:可以用try catch捕获
begin try
begin tran
update table set a=1;
commit tran
end Try
begin catch
rollback tran
end catch
2:可以使用error 全局变量
begin tran
update tablename set ad=1111
if @@error<>0 begin rollback end
commit tran
注意:如果一个事务写了 begin trans ,后面一定要跟上 commit tran或 rollback transaction ,否则可能导致被锁
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个没有BEGIN ...END 时,第二个ROLLBACK TRANSACTION的存在会产生两个报错
Rolling back the transaction two times would cause an error.
ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。
且第一个ROLLBACK TRANSACTION 与END之前的语句不会执行
你这个有BEGIN ...END 时,不会报错,且第一个ROLLBACK TRANSACTION 与END之前的语句不会执行
这应该是一段完整脚本的片段,你把完整脚本仔细看看吧
Rolling back the transaction two times would cause an error.
ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。
且第一个ROLLBACK TRANSACTION 与END之前的语句不会执行
你这个有BEGIN ...END 时,不会报错,且第一个ROLLBACK TRANSACTION 与END之前的语句不会执行
这应该是一段完整脚本的片段,你把完整脚本仔细看看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-04
展开全部
如果你已经commit了那么就不能再通过事物回到update之前的状态了,不过如果你用的是oracle数据库,可以用它的数据库闪回机制实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在Oracle中提交之后,就不能rollback了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询