sql - UNION 多个存储过程的结果

标签 sql sql-server stored-procedures union

我有一个存储过程,我需要调用几次不同的时间,每次传递不同的参数。我想将结果收集为单个数据集。这样的事情可能吗...

exec MyStoredProcedure 1
UNION
exec MyStoredProcedure 2
UNION
exec MyStoredProcedure 3

我尝试使用上面的语法,但收到错误...

Incorrect syntax near the keyword 'UNION'

我正在处理的存储过程非常复杂,对我来说有点像“黑匣子”,所以我无法进入存储过程的定义并更改任何内容。关于如何收集结果有什么建议吗?

我使用的是 SQL Server 2008 R2。感谢您的帮助。

最佳答案

您必须使用这样的临时表。 UNION 用于 SELECT,而不是存储过程

CREATE TABLE #foo (bar int ...)

INSERT #foo
exec MyStoredProcedure 1

INSERT #foo
exec MyStoredProcedure 2

INSERT #foo
exec MyStoredProcedure 3

...

并希望存储过程中没有 INSERT..EXEC.. ,因为不能嵌套。或多个结果集。或者其他几个破坏性的结构

关于sql - UNION 多个存储过程的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292069/

相关文章:

MySQL 查询 : Is There any Query such "BUT NOT IN <blank>"?

SQL ORDER by STRING 奇怪的语法

sql-server - 在 SELECT 语句中使用 UDF

sql-server - 如何对多对多表进行级联删除

mysql - 如何在 vb.net 应用程序中捕获 mysql 触发器和存储过程?

sql-server - 如何从存储过程返回 ID 数组?

SQL PIVOT 生成所需的输出

Mysql 查找缺失的日期范围

sql-server - Select WITHOUT WHERE 或 ORDER BY 子句的结果排序顺序

mysql - 如何根据结果设置存储过程中变量的值?