永发信息网

SQL语句如何rollback

答案:5  悬赏:10  手机版
解决时间 2021-04-29 05:24
  • 提问者网友:几叶到寒
  • 2021-04-28 17:25
SQL语句如何rollback
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-04-28 18:35
回滚要放在事务里面进行,才能进行回滚;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楼网友:旧脸谱
  • 2021-04-28 21:41
在Oracle中提交之后,就不能rollback了
  • 2楼网友:十鸦
  • 2021-04-28 20:59
如果你已经commit了那么就不能再通过事物回到update之前的状态了,不过如果你用的是oracle数据库,可以用它的数据库闪回机制实现。
  • 3楼网友:蕴藏春秋
  • 2021-04-28 19:45
你这个没有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之前的语句不会执行
这应该是一段完整脚本的片段,你把完整脚本仔细看看吧
  • 4楼网友:行路难
  • 2021-04-28 19:39
rollback是针对事务的,你如果没有在执行语句之前开启事务,那么无法rollback,建议你还是想别的办法吧,事务语句如下(sqlserver的给你借鉴):
--开启事务
begin tran
--执行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--执行错误事务回滚
rollback
--如果正确进行事务提交
commit
可以勾选一句执行一句,但是commit了就不能rollback
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯