sql - 如何识别是否有任何子程序失败?
问题描述
在 SQL Server 中,一个有主存储过程,另一个是多个子过程。
如果任何子程序失败,则在主程序中调用子程序时,我们如何识别它?
这个问题问我面试。
解决方案
将嵌套过程包含在 try catch 块中。在下面的例子中,如果 SP2 在执行 SP1 时抛出一些错误,错误将被捕获到 catch 块中,并相应地显示错误消息。有关更多详细信息,请参阅文章ERROR_MESSAGE (Transact-SQL)。
CREATE PROC [dbo].[SP1]
AS
BEGIN
BEGIN TRY
EXEC SP2
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage; -- capture error
END CATCH
END
推荐阅读
- android - Android 应用中的“Google Now”语音搜索
- sql - ORA-00936: 缺少 WHERE (ID Mod 2) = 0 的表达式;
- python - 我需要帮助了解 python 中的 map 函数
- go - 使用服务帐户访问 Google Reseller API
- gitlab - 如何持续部署 Gitlab?
- java - 连接 Netbeans 和 MySQL 但出现大整数错误
- razorengine - MVC Razor 本地化如何
- c# - Mac 上的 Rider 给了我无法解析 linq 方法(如 Any 和 Skip)上的符号,whyP
- angular - 递归子元素单击的角度函数
- git - Android Studio 和 github,与团队合作