这是我遇到的一个场景, - 我有一个SQL作业,它有大约四个SQL存储过程 - 这些是一个接一个地顺序执行 - 现在案例是:如果任何存储过程失败或引发异常,整个Job应该停止。
我怎么能这样做?
答案 0 :(得分:1)
用这样的东西做一个小程序:
BEGIN TRY
DECLARE @Return INTEGER
-- Run first procedure
EXEC @Return = firstProcedure
IF (@Return <> 0)
BEGIN
-- Do some error handling
END
-- Run second procedure
EXEC @Return = secondProcedure
IF (@Return <> 0)
BEGIN
-- Do some error handling
END
-- etc...
END TRY
BEGIN CATCH
-- Do some error handling
END CATCH
答案 1 :(得分:0)
虽然有几种不同的方法可以做到这一点,但我建议你使用SQL Server Agent中的工具。使每个调用成为工作中的一个单独步骤。
这将允许您在成功时从一步移动到下一步。您还可以使用SQL Server Agent的日志记录和错误处理机制来确定错误并进行处理。