2017-06-29 30 views
0

我有5個動態SQL插入在TRY CATCH內運行,但CATCH塊不會讓運行此代碼的父存儲過程知道它可能已失敗。我需要在每個動態SQL之後添加一個RAISERROR以標記是否有錯誤。動態SQL和RAISERROR

每個DSQL與

EXEC sp_executesql @SQL, @param_definition, @param 

難道我每次打電話後RAISERROR或者我只是需要一個在CATCH結束?

感謝

回答

0

只要動態查詢不包含任何try/catch語句,然後THROW ING(或前RAISERROR SQL 2012)在CATCH就足夠了。像

begin try 
    . . . 
    EXEC sp_executesql @SQL, @param_definition, @param 
    . . . 
    EXEC sp_executesql @SQL, @param_definition, @param 
    . . . 
    EXEC sp_executesql @SQL, @param_definition, @param 
end try 
begin catch 
    throw 
end catch