执行下面这段语句后,表里还有BBB这条记录吗?insert into table(name)values('AAA');
savepoint sq1;
insert into table(name)values('BBB');rollback to sql;
rollback;
书上说事务中不能连续回退,但是我在SQL/PLUS中实践的结果是:执行上面那段代码后,表中没有BBB这条记录,也就是说可以连续回退吗?

解决方案 »

  1.   

    insert into table(name)values('AAA'); 
    savepoint sq1; 
    insert into table(name)values('BBB'); 
    savepoint sq12; 
    rollback to sql2; 
    rollback to sq11 ;
    这样应该报错了,你那样应该是可以的. 
      

  2.   

    假如在rollback后不加 保存点, 则撤销到上一次提交之后的所有修改, 并且结束当前事务
      

  3.   

    书上所谓的不能连续回退,是指,不可以连续两次:rollback to 保存点
    而像楼主那样的回退,是可以的