如何将存储过程#1的结果存入存储过程#2中的临时表

Tim*_*Tim 3 stored-procedures temp-tables sql-server-2012

我试图将几个存储过程的结果合并到一个临时表中.各种存储过程的结果具有相同的列结构.从本质上讲,我想UNION ALL各种存储过程的结果.一个重要的事实:每个存储过程都创建一个临时表来存储其数据,每个返回的结果都基于对临时表的选择:

create proc SP1    
as
 .
 .  <snip>
 .
 select * from #tmp   -- a temporary table
Run Code Online (Sandbox Code Playgroud)

注意,select * from OPENQUERY(server, 'exec SP1')如果SP1中的select对临时表不起作用(有关详细信息,请参阅此问题),是否有另一种方法可以将不同的存储过程SP2发送到临时表中执行SP1的结果?

  create proc SP2 as
  -- put results of executing SP1 into a temporary table:
  .
  .
  .
Run Code Online (Sandbox Code Playgroud)

注意:无法修改SP1(例如,将其结果存储在具有会话范围的临时表中).

Tom*_*ron 8

创建临时表,使其适合存储过程的结果.

假设你的温度.table被称为"#MySuperTempTable",你会做这样的事情......

INSERT INTO #MySuperTempTable (Column1, Column2)
EXEC SP1
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.