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(例如,将其结果存储在具有会话范围的临时表中).
创建临时表,使其适合存储过程的结果.
假设你的温度.table被称为"#MySuperTempTable",你会做这样的事情......
INSERT INTO #MySuperTempTable (Column1, Column2)
EXEC SP1
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.