sqlsql-serverstored-proceduresunion

UNION the results of multiple stored procedures


I have a stored procedure I need to call several different times passing in different paramaters each time. I would like to collect the results as a single dataset. Is something like this possible ...

exec MyStoredProcedure 1
UNION
exec MyStoredProcedure 2
UNION
exec MyStoredProcedure 3

I tried using the syntax above but got the error ...

Incorrect syntax near the keyword 'UNION'

The stored procedures I am dealing with are pretty complex and sort of a "black box" to me, so I cannot get into the definition of the stored procedure and change anything. Any suggestions on how to gather the results together?

I am using SQL Server 2008 R2. Thanks for any help.


Solution

  • You'd have to use a temp table like this. UNION is for SELECTs, not stored procs

    CREATE TABLE #foo (bar int ...)
    
    INSERT #foo
    exec MyStoredProcedure 1
    
    INSERT #foo
    exec MyStoredProcedure 2
    
    INSERT #foo
    exec MyStoredProcedure 3
    
    ...
    

    And hope the stored procs don't have INSERT..EXEC.. already which can not be nested. Or multiple resultsets. Or several other breaking constructs