sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo insertar en una variable de tabla con una consulta dinámica?

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