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