sql >> Databasteknik >  >> RDS >> Sqlserver

Hur infogar man i en tabellvariabel med en dynamisk fråga?

Detta är ett enkelt minimalt exempel. Du kan använda INSERT EXEC påstående. Nyckeln är att ha en tabellvariabel deklarerad i och utanför dynamisk fråga. I slutet av dynamisk fråga väljer du bara från tabellvariabel och infogar resultatuppsättning i extern tabellvariabel:

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


  1. Initiera MariaDB 10.4.12 på CentOS 7.7

  2. Varför använder inte MySQL ett index på ett int-fält som används som ett booleskt?

  3. SQLite Order By Date1530019888000

  4. välj alla rader utom de fyra senaste