Sql server SQL Server,使用临时表传递存储过程结果
我正在编写一个存储过程,它使用temp table使用另一个存储过程的结果。内部存储过程Sql server SQL Server,使用临时表传递存储过程结果,sql-server,stored-procedures,Sql Server,Stored Procedures,我正在编写一个存储过程,它使用temp table使用另一个存储过程的结果。内部存储过程usp_i位于数据库A中,外部存储过程usp_o位于数据库B中。所有数据库都位于同一台服务器上 在usp_i的末尾,我将其结果放入\tmpResult表中: use A go select * into #tmpResult from SomeTable 现在在callerusp\u o中,我有 use B go exec A.dbo.usp_i select * from #tmpResult sel
usp_i
位于数据库A中,外部存储过程usp_o
位于数据库B中。所有数据库都位于同一台服务器上
在usp_i
的末尾,我将其结果放入\tmpResult
表中:
use A
go
select * into #tmpResult from SomeTable
现在在callerusp\u o
中,我有
use B
go
exec A.dbo.usp_i
select * from #tmpResult
select * from tmpdb..#tmpResult
两方面我都犯了错误
无效的对象名称#tmpResult
如何获得临时表?在外部进程中创建临时表,并将其插入内部进程中。我认为您可以使用表:
在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
您是否正在尝试访问外部存储过程中内部存储过程返回的结果?或者您想在外部进程中使用内部进程中创建的临时表?@Murthy最终我想使用内部进程返回的结果。我认为最简单的方法是插入到。。。exec但是sql server有一些嵌套问题
-- in usp_o
create table #tmpResult ( ... )
exec A.dbo.usp_i
-- in usp_i
insert into #tmpResult ( ... ) select ... from sometable