我试图将几个存储过程的结果组合到一个临时表中。各种存储过程的结果具有相同的列结构。本质上,我想 UNION ALL 各种存储过程的结果。一个重要的事实:每个存储过程都会创建一个临时表来存储其数据,并且每个返回的结果都基于对临时表的选择:
create proc SP1
as
.
. <snip>
.
select * from #tmp -- a temporary table
请注意,select * from OPENQUERY(server, 'exec SP1')
如果 SP1 中的选择针对临时表不起作用(有关详细信息,请参阅此问题),是否有另一种方法可以让不同的存储过程 SP2 将执行 SP1 的结果放入临时表中?
create proc SP2 as
-- put results of executing SP1 into a temporary table:
.
.
.
注意:SP1 不能修改(例如,将其结果存储在具有会话范围的临时表中)。