[英]Error handling in stored procedures
我有一个“预处理”存储过程,它在内部调用了多个存储过程。
最后,当我所有的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
我的问题是在这种情况下错误处理的最佳方法是什么,即我想确保在运行最终更新语句之前一切都已完成。
由于我发现每个SP必须具有自己的错误处理,而外部SP调用多个SP则不需要进行错误处理,因此结束此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.