SQL Server: захватить временную таблицу из хранимой процедуры, которая вызывает другие хранимые процедуры - PullRequest
0 голосов
/ 14 мая 2019

У меня есть хранимая процедура, которая принимает один параметр, передавая его хранимым процедурам внутри него. Результирующий набор является временным с точки зрения этих выходных данных хранимой процедуры. Хранимая процедура работает нормально, но у меня возникают проблемы при получении набора результатов:

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'

Спасибо

1 Ответ

2 голосов
/ 14 мая 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...