1,
begin tran T1
  insert语句1
commit tran T1if @@error<>0--在这里如果@@error<>0就不会去执行insert语句2了吧,是吗?
begin
  rollback tran T1
end  insert语句22,
begin tran T1
  insert语句1
  insert语句2
commit tran T1if @@error<>0
begin
  rollback tran T1
end
这种写法还会去执行insert语句2吧,是吗?请问,哪一种好,谢谢!
  

解决方案 »

  1.   

    都不好begin tran T1 
      insert语句1 
      insert语句2 
    if @@error <>0 
    begin 
      rollback tran T1 
    end 
    commit tran T1 
      

  2.   

    那这样呢?begin tran T1  
      insert语句1  
      if @@error<>0  
        rollback 
     
      insert语句2  
      if @@error  <>0  
        rollback 
    commit tran T1  
      

  3.   

    我要insert语句1出错后,就不执行insert语句2了,怎样写?begin tran T1   
      insert语句1   
      if @@error <>0   
        rollback  
      
      insert语句2
    commit tran T1上面这样写可以吗?好吗?   
      

  4.   

    --这样写
    begin tran T1 
      insert语句1 
      insert语句2 
    commit tran T1 if @@error <>0 
    begin 
      rollback tran T1 
    end 
      

  5.   

    to 背着灵魂漫步--这样写
    begin tran T1 
      insert语句1 
      insert语句2 
    commit tran T1 if @@error <>0 
    begin 
      rollback tran T1 
    end 如果insert语句1出错@@error<>0
    但在执行insert语句2后@@error=0了,这时还会rollback吗?