存储过程:确保执行第二个和后续过程

时间:2010-12-07 16:26:28

标签: sql-server tsql stored-procedures

我有一个SQL Server存储过程,使用exec <SP Name>执行其他几个存储过程。

即使第一个和后续程序失败,我怎样才能确保第二个和后续程序执行?

1 个答案:

答案 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