Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment insérer dans une variable de table avec une requête dynamique ?

Ceci est un exemple minimal simple. Vous pouvez utiliser INSERT EXEC déclaration. La clé est d'avoir une variable de table déclarée à l'intérieur et à l'extérieur de la requête dynamique. À la fin de la requête dynamique, sélectionnez simplement une variable de table et insérez le jeu de résultats dans une variable de table extérieure :

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