Това е прост минимален пример. Можете да използвате INSERT EXEC
изявление. Ключът е променливата на таблицата да е декларирана вътре и извън динамичната заявка. В края на динамичната заявка просто изберете от променливата на таблицата и вмъкнете набор от резултати във външната променлива на таблицата:
DECLARE @t TABLE ( id INT )
DECLARE @q NVARCHAR(MAX) = 'declare @t table(id int)
insert into @t values(1),(2)
select * from @t'
INSERT INTO @t
EXEC(@q)
SELECT * FROM @t