我有一个TRY CATCH
运行 5 个动态 SQL 插入,但是CATCH
块不会让运行此代码的父存储过程知道它可能已失败。我需要在每个动态 SQL 之后添加一个RAISERROR
以标记一个错误。
每个 dSQL 以
EXEC sp_executesql @SQL, @param_definition, @param
我是在每个之后打电话给RAISERROR
还是只需要一个CATCH
?
谢谢
只要动态查询不包含任何 TRY/CATCH,那么 CATCH 中的 THROWing(或 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