日期:2014-05-18  浏览次数:20364 次

请问大家在储存过程中如果出现错误rollback的写法我这么写对么?
Begin   Transaction

insert   into   Table1   xxxx

IF   (@@Error   !=   0   )
Begin
      ROLLBACK   TRANSACTION
      RETURN
End

insert   into   Table2   xxxx
IF   (@@Error   !=   0   )
Begin
      ROLLBACK   TRANSACTION
      RETURN
End


大家看,我的储存过程需要往2个表插入数据,当插入第一个表数据的时候如果发生错误就rollback并退出,如果   第一个表成功了就插入第二个表,如果失败了,就rollback   到插入第一个表的前面(最开端)并退出,请问我用了2次的检查是否正确?还是只需要在结尾用一次
IF   (@@Error   !=   0   )
Begin
      ROLLBACK   TRANSACTION
      RETURN
End
检查就足够实现我的目的了????请各位指点,谢谢

------解决方案--------------------
LZ 的写法是对的,每条语句都判断一下很必要

不过 LZ 怎么没有在最后写 COMMIT