Dovresti usare una tabella temporanea come questa. UNION è per SELECT, non per processi archiviati
CREATE TABLE #foo (bar int ...)
INSERT #foo
exec MyStoredProcedure 1
INSERT #foo
exec MyStoredProcedure 2
INSERT #foo
exec MyStoredProcedure 3
...
E spero che i processi archiviati non abbiano INSERT..EXEC..
già che non può essere nidificato. O più set di risultati. O molti altri costrutti di rottura