Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie fügt man in eine Tabellenvariable mit einer dynamischen Abfrage ein?

Dies ist ein einfaches Minimalbeispiel. Sie können INSERT EXEC verwenden Aussage. Der Schlüssel ist, dass die Tabellenvariable innerhalb und außerhalb der dynamischen Abfrage deklariert wird. Am Ende der dynamischen Abfrage wählen Sie einfach aus der Tabellenvariablen aus und fügen die Ergebnismenge in die externe Tabellenvariable ein:

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