【问题标题】:SQL Server: capture temp table from stored procedure that calls other stored proceduresSQL Server:从调用其他存储过程的存储过程中捕获临时表
【发布时间】:2019-05-14 08:47:05
【问题描述】:

我有一个存储过程,它接受一个参数,将其传递给其中的存储过程。从这些存储过程输出的视图来看,结果集是一个临时表。存储过程运行良好,但我无法捕获其结果集:

use mydb
go

create procedure sp_myproc (@refdate date)
as
begin
    declare @temptable table 
                       (
                            field1 varchar(50), 
                            field2 varchar(50), 
                            field3 varchar(50), 
                            field4 varchar(30), 
                            field5 numeric(20, 0)
                       )

    exec sp_firstsp @refdate 
    exec sp_secondsp @refdate
    exec sp_thirdsp @refdate

    exec sp_fourthsp @refdate
    exec sp_fifthsp

    insert into @temptable  
        select field1, field2, field3, field4, field5 
        from view_into_results_of_abovesps 

    -- return @temptable (error: Must declare the scalar variable "@temptable".)
end
go 

我正在尝试以以下方式捕获结果集,但得到一个空表:

    declare @temptable table 
                       (
                            field1 varchar(50), 
                            field2 varchar(50), 
                            field3 varchar(50), 
                            field4 varchar(30), 
                            field5 numeric(20, 0)
                       )

    insert into @temptable
        execute sp_myproc '2017-01-13'

谢谢

【问题讨论】:

  • “结束”使用前:select * from @temptable

标签: sql-server stored-procedures


【解决方案1】:
use mydb
go

create procedure sp_myproc (@refdate date)
as
begin
declare @temptable table 
                   (
                        field1 varchar(50), 
                        field2 varchar(50), 
                        field3 varchar(50), 
                        field4 varchar(30), 
                        field5 numeric(20, 0)
                   )

exec sp_firstsp @refdate 
exec sp_secondsp @refdate
exec sp_thirdsp @refdate

exec sp_fourthsp @refdate
exec sp_fifthsp

insert into @temptable  
    select field1, field2, field3, field4, field5 
    from view_into_results_of_abovesps 

--USE THIS
select * from @temptable

end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 2012-02-10
    • 1970-01-01
    • 2014-03-07
    • 2014-03-30
    • 2015-05-08
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多