我在TRY CATCH
内运行了5个动态SQL插件,但是CATCH
块不允许运行此代码的父存储过程知道它可能已经失败。我需要在每个动态SQL之后添加RAISERROR
以标记是否有错误。
每个dSQL都以
结尾EXEC sp_executesql @SQL, @param_definition, @param
我是否应在每次RAISERROR
之后致电CATCH
?
由于
答案 0 :(得分:0)
只要动态查询不包含任何TRY / CATCH,CATCH中的THROW(或SQL 2012之前的RAISERROR)就足够了。像
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