Vous devez utiliser une table temporaire comme celle-ci. UNION est pour les SELECT, pas les procs stockés
CREATE TABLE #foo (bar int ...)
INSERT #foo
exec MyStoredProcedure 1
INSERT #foo
exec MyStoredProcedure 2
INSERT #foo
exec MyStoredProcedure 3
...
Et espérons que les procs stockés n'ont pas INSERT..EXEC.. déjà qui ne peut pas être imbriqué. Ou plusieurs jeux de résultats. Ou plusieurs autres constructions de rupture