Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como inserir em uma variável de tabela com uma consulta dinâmica?


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