SQL Server,使用临时表传递存储过程结果

时间:2017-10-02 22:04:35

标签: sql-server stored-procedures

我正在编写一个存储过程,它使用临时表来使用另一个存储过程的结果。内部存储过程usp_i位于数据库A中,外部存储过程usp_o位于数据库B中。所有数据库位于同一服务器上。

usp_i结束时,我将其结果放入#tmpResult表:

use A
go

select * into #tmpResult from SomeTable

现在在来电者usp_o,我有

use B
go

exec A.dbo.usp_i
select * from #tmpResult
select * from tmpdb..#tmpResult

我出错了两种方式

  

无效的对象名称#tmpResult

如何获取临时表?

3 个答案:

答案 0 :(得分:1)

在外部过程中创建临时表,在内部过程中创建INSERT INTO

答案 1 :(得分:1)

在usp_o中创建临时表,在usp_i中,插入行,您将能够在usp_o中访问

-- in usp_o
create table #tmpResult ( ... )

exec A.dbo.usp_i



-- in usp_i
insert into #tmpResult (  ... ) select ... from sometable

答案 2 :(得分:0)

我认为你可以使用表##:

select * into ##tmpResult from SomeTable