Quick thought, this can be done in some circumstances where the result sets are equal in structure, consider this example
😎
USE tempdb;
GO
SET NOCOUNT ON;
GO
CREATE PROCEDURE dbo.TWO_RESULT_USP
AS
SELECT
OBJECT_ID
,name
FROM sys.ObjectS WHERE OBJECT_ID > 100
SELECT
OBJECT_ID
,name
FROM sys.ObjectS WHERE OBJECT_ID <= 100
GO
DECLARE @RES TABLE (OBJECT_ID INT NOT NULL,ONAME SYSNAME NULL);
INSERT INTO @RES(OBJECT_ID,ONAME)
EXEC dbo.TWO_RESULT_USP;
SELECT * FROM @RES
DROP PROCEDURE dbo.TWO_RESULT_USP;
Results (Shortened)
OBJECT_ID ONAME
----------- ----------------------------------
101575400 sqlagent_jobs
117575457 sqlagent_jobsteps
133575514 sqlagent_job_history
149575571 sqlagent_jobsteps_logs
245575913 service_broker_map
261575970 fulltext_thesaurus_metadata_table
277576027 fulltext_thesaurus_state_table
293576084 fulltext_thesaurus_phrase_table
-1441179818 #AA195756
3 sysrscols
5 sysrowsets
6 sysclones
7 sysallocunits
8 sysfiles1
9 sysseobjvalues
17 syspriorities
18 sysdbfrag
19 sysfgfrag
20 sysdbfiles