sql事物回滚问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:36:22
事务开始:
SQL语句A
SQL语句B
SQL语句C
如果C出错,回滚到B或A
如果B出错,回滚到A
就是给他指定回滚到某个位置!这应该如何实现?
这是老师给我们出的课外题,让我们私下自己查询,既然老师能出这个题目,就必定有他的答案,每个人的局限性不同,他虽然在银行系统上可能无所作为,但在其他方面可能就会有很大作为!

我只会sqlserver的

beign transaction

save transaction A
update a set a = a where a = a
if @ERROR <> 0
rollback transaction A
save transaction B
update a set a = a where a = a
if @ERROR <> 0
rollback transaction B
...

commit transaction

我晕 什么叫回滚
-----------
事务开始
检测try{
SQL1;
SQL2;
SQL3;
}catch(...){
出错信息;
取消事务;
}
提交事务!

怎么可能回滚到1或者2???那叫事务????
你去银行转帐,1是将你帐号扣除 2是传递数据 3是增加对方帐号
3出错,你滚到2,有批用!

各个数据库都有保存事务的关键字。一般为savepoint.
可以写成类似以下的语句:
SQL语句A;
savepoint a;
SQL语句B
savepoint b
SQL语句C

when exception c
rollback to b;
when exception b
rollback to a;

反正有这两个关键字,你自己查数据库的帮助文档吧

写个事务`回滚是要么都执行`要么都不执行!