sql >> Database >  >> RDS >> Sqlserver

Invoegen in... Samenvoegen... Selecteer (SQL Server)

De truc is om de tabel te vullen met de MERGE statement in plaats van een INSERT...SELECT . Hiermee kunt u waarden van zowel ingevoegde als brongegevens gebruiken in de uitvoerclausule:

MERGE INTO Table3 USING
(
    SELECT null as col2, 
           110 as col3, 
           Table1.ID as col4, 
           Table2.Column2 as col5,
           Table2.Id as col6
    FROM Table1
    JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
    JOIN Table2 on Table1Table2Link.Column2=Table2.ID
) AS s ON 1 = 0 -- Always not matched
WHEN NOT MATCHED THEN
INSERT (Column2, Column3, Column4, Column5)
VALUES (s.col2, s.col3, s.col4, s.col5)
OUTPUT Inserted.ID, s.col6
INTO @MyTableVar (insertedId, Table2Id); 



  1. Zullen de prestaties van SQLite afnemen als de database groter is dan 2 gigabyte?

  2. Hoe een Rest API te bouwen met Spring Boot met behulp van MySQL en JPA

  3. Reset MySQL-rootwachtwoord met behulp van de instructie ALTER USER na installatie op Mac

  4. Waarom kunnen PL/pgSQL-functies een neveneffect hebben, terwijl SQL-functies dat niet kunnen?