我有一个SQL Server存储过程,使用exec <SP Name>
执行其他几个存储过程。
即使第一个和后续程序失败,我怎样才能确保第二个和后续程序执行?
答案 0 :(得分:4)
使用TRY...CATCH
块(假设您运行的是SQL Server 2005或更高版本)。
DECLARE @failed BIT
SET @failed = 0
BEGIN TRY
EXEC your_first_sproc
END TRY
BEGIN CATCH
SET @failed = 1
END CATCH
IF (@failed = 0)
BEGIN
BEGIN TRY
EXEC your_second_sproc
END TRY
BEGIN CATCH
SET @failed = 1
END CATCH
END
IF (@failed = 0)
BEGIN
BEGIN TRY
EXEC your_third_sproc
END TRY
BEGIN CATCH
SET @failed = 1
END CATCH
END
-- etc etc