Este es un ejemplo mínimo simple. Puedes usar INSERT EXEC
declaración. La clave es tener una variable de tabla declarada dentro y fuera de la consulta dinámica. Al final de la consulta dinámica, simplemente seleccione de la variable de la tabla e inserte el conjunto de resultados en la variable de la tabla 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