Este é um exemplo mínimo simples. Você pode usar
INSERT EXEC
declaração. A chave é ter a variável da tabela declarada dentro e fora da consulta dinâmica. No final da consulta dinâmica, basta selecionar a variável da tabela e inserir o conjunto de resultados na variável da tabela externa: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