将返回数据从SP插入临时表

时间:2012-03-27 18:27:09

标签: sql-server sql-server-2005 stored-procedures

我有一个存储过程SP1,它执行并在一个表上进行选择。现在我需要将该数据插入另一个表中。我不想复制代码,所以我想把SP1返回的数据插入到临时表中,这样我就可以对它进行一些处理并保存。

我尝试了INSERT INTO #tmp; exec dbo.Sp1;,但它给我一个错误Invalid object name '#tmp'.。我有没有办法动态创建这个表?这个问题有更好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

临时表必须存在才能使用insert into exec。

这不是首次出现的退缩,因为对程序结果集的任何更改都可能会使代码失效。

答案 1 :(得分:0)

首先运行:

create proc MySelect
as
begin
  select 1 as myColumn1, 2 as mycolumn2
end

然后这个:

create table #tmp(
col_1 int,
col_2 int)

insert into #tmp exec MySelect

select * from #tmp