我正在编写一个存储过程,它使用临时表来使用另一个存储过程的结果。内部存储过程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
如何获取临时表?
答案 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