SP 返回的结果集 - SQL 服务器 - Java

SP returned result set - SQL Server - Java

我认为给定的存储过程 returns 到调用代码(例如 JDBC/Hibernate)只有最后一个 SELECT 执行的结果集。但是,如果 SP 正文中有多个 SELECT present/executed,它似乎 returns 不止一个结果集,更糟糕的是:似乎 JDBC/Hibernate 将第一个结果集检测为实际结果。

我的理解有误吗?谁能澄清这是如何工作的?引用一些权威参考文献是(像往常一样)可取的。

SQL 服务器将 return 执行存储过程的所有结果集,而不仅仅是最后一个。

如果一个 SP 有多个结果集 returned,它们将按顺序 returned 并且全部 returned,除非有任何错误。

例如:

CREATE PROCEDURE MultipleResults
AS
BEGIN
SELECT 'Result #1'
SELECT 'Result #2'
SELECT 'Result #3'
END

以上将 return 3 个结果集,每个结果集只有一行。 See example N.

就我个人而言,我不喜欢这个,因为大多数工具不理解可以 returned 并且不能正确使用它。我尝试将单个结果集(如果有的话)保留为每个 SP returned。