在执行存储过程中如果出现错误,存储过程默认会继续执行下面的语句,直到整个存储过程执行完毕后,才显示错误。
有没有什么办法在语句出错的时候,就报错直接跳出存储过程的运行。

解决方案 »

  1.   

    --OR USE 'SET XACT_ABORT ON'
    CREATE PROC P
    AS
    SET XACT_ABORT ON
    BEGIN TRAN
    ....COMMIT
      

  2.   

    true  commit
    fause rollback
    用事务
      

  3.   

    最简单的方法,就是出错的地方都直接returnsqlserver的习惯写法:
    ……
    ……
    if @@error<>0 goto back
    ……
    ……
    if @@error<>0 goto back
    ……
    if @@error<>0 goto backback:
      return
      

  4.   

    不太想用事务,因为数据量比较大
    难道除了每个SQL语句后面加@@error就没有其他的办法了吧
    比如有没有相关的系统设置选项之类的