0

我有一个“预处理”存储过程,它在内部调用多个存储过程。

最后,当我所有的 SPS(内部)都成功执行时,我想运行一个更新语句,所以在主 SP 中我有:

EXEC SP1
EXEC SP2
EXEC SP3

-- RUN UPDATE statment here

我所有的内部 SP 都有以下模板:

  BEGIN TRY
  BEGIN TRANSACTION

  // DO SOME INSERT,UPDATE ETC..

  COMMIT TRANSACTION;
  END TRY
  BEGIN CATCH
         SELECT 
            ERROR_NUMBER() AS ErrorNumber
            ,ERROR_SEVERITY() AS ErrorSeverity
            ,ERROR_STATE() AS ErrorState
            ,ERROR_PROCEDURE() AS ErrorProcedure
            ,ERROR_LINE() AS ErrorLine
            ,ERROR_MESSAGE() AS ErrorMessage;

  IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
         RETURN
  END CATCH

我的问题是,在这种情况下处理错误的最佳方法是什么,即我想确保在运行最终更新语句之前一切都已完成。

4

1 回答 1

0

关闭它是因为我发现每个 SP 都必须有自己的错误处理,而调用多个 SP 的外部 SP 不需要进行错误处理。

于 2012-12-27T17:27:41.873 回答