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。
我认为给定的存储过程 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。