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:可以用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之前的语句不会执行
这应该是一段完整脚本的片段,你把完整脚本仔细看看吧
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
--开启事务
begin tran
--执行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--执行错误事务回滚
rollback
--如果正确进行事务提交
commit
可以勾选一句执行一句,但是commit了就不能rollback
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯