调用另一个存储过程后从存储过程返回错误结果

Posted

技术标签:

【中文标题】调用另一个存储过程后从存储过程返回错误结果【英文标题】:Getting the wrong result back from the stored procedure after calling another stored procedure 【发布时间】:2011-11-08 02:44:02 【问题描述】:

我们有一个用来创建用户的存储过程。在该存储过程中,我们调用其他存储过程来创建用户需要开始的东西。每个存储过程都以这样的结尾:

select 1 AS statusMsg, 'User Successfuly Created' as msg;

问题是我们返回错误的statusMsgmsg

我们结束这个过程:

call createDefaultSites(l_customerguid);
select 1 AS statusMsg, 'User Successfuly Created' as msg;

但我们从 createDefaultSites() 调用而不是最终选择中取回了 statusMsgmsg

如何确保只有最后一条语句返回结果?

【问题讨论】:

【参考方案1】:

我最终为每个返回值添加了一个标识符,并循环遍历它们以找到我正在寻找的那个。

select 1                          AS statusMsg, 
       'User Successfuly Created' AS       msg, 
       'UserCreation'             AS   msgType;

老实说,我没有意识到我得到了多个结果集。如果 statusMsg 来自第一个结果集,我也许会更快一点。

【讨论】:

以上是关于调用另一个存储过程后从存储过程返回错误结果的主要内容,如果未能解决你的问题,请参考以下文章

mssql 存储过程调用另一个存储过程中的结果的方法分享

如何在存储过程中直接使用另一个存储过程返回的数据集

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

从另一个存储过程调用的存储过程中获取第一个结果集

MySQL 存储过程,获取使用游标查询的结果集