java - SP 返回的结果集 - SQL Server - Java

标签 java sql-server hibernate sql-server-2008 jdbc

我认为给定的存储过程仅返回最后一个 SELECT 的结果集到调用代码(例如 JDBC/Hibernate) > 执行。但如果 SP 主体中存在/执行多个 SELECT,它似乎会返回多个结果集,更糟糕的是:似乎 JDBC/Hibernate 将第一个结果集检测为实际结果。

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

最佳答案

SQL Server 将返回执行存储过程的所有结果集,而不仅仅是最后一个结果集。

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

例如:

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

上面将返回 3 个结果集,每个结果集只有一行。 See example N.

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

关于java - SP 返回的结果集 - SQL Server - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386124/

相关文章:

java - 在 Hibernate Multi-Tenancy 配置中禁用 Spring 数据源配置

java - hibernate 保存或更新: no SqlStatement when a field is present

Java 服务器客户端(I/O 连接异常)

java - 我应该如何将 Json 转换为 ResponseEntity<String>?

sql-server - SSMA 时间戳。它有什么用,如何使用?

sql - 在 "Status"时间后动态更新 "X"列

java - org.hibernate.MappingException : Repeated column in mapping for entity:. ..column:added_by(应使用 insert ="false"update ="false"进行映射)

java - "VM Periodic Task Thread"是什么?

java - 自定义 Eclipse 内容辅助的键绑定(bind)

sql-server - 在记录消息时,如何设置 Serilog 以调用 SQL Server 中的存储过程?