我想在一个存储过程中进行多张表的插入操作,但又怕其中之一的表突然插入不成功,就会出错。就我所知这种情况下最好用事务处理,用事务回滚来解决。请问各位高手你们在处理这种情况下,应该怎么写保险点的多表插入的存储过程呢,谢谢

解决方案 »

  1.   

    当然用事务了
    begin tran
    .........
    if @@error<>0 goto err
    commit tran
    returnerr:
    rollback tran go事务要么成功执行,要么什么都不执行
      

  2.   


    搭车提问begin tran 
    insert into table1 --insert1
    if @@error <>0 goto err 
    commit tran 
    insert into table2 --insert2
    if @@error <>0 goto err 
    commit tran 
    insert into table4 --insert4
    if @@error <>0 goto err 
    commit tran 
    return err: 
    rollback tran go 如上面代码,如果是insert2那里出了错误,回滚会回滚到哪里?