Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come inserire in una variabile di tabella con una query dinamica?

Questo è un semplice esempio minimo. Puoi usare INSERT EXEC dichiarazione. La chiave è avere una variabile di tabella dichiarata all'interno e all'esterno della query dinamica. Alla fine della query dinamica seleziona semplicemente dalla variabile della tabella e inserisci il set di risultati nella variabile della tabella esterna:

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