sql >> Databasteknik >  >> RDS >> Sqlserver

Använda utdata för att ställa in en variabel i en sammanslagningssats

Nej, du måste använda en tabellvariabel med OUTPUT

Du kan dock göra detta...

...
WHEN MATCHED THEN 
    UPDATE
    SET
       @int = ID,
       somecolumn = 'something'
WHEN NOT MATCHED THEN
    INSERT 
    VALUES ('stringtomatch',
        'something');

SET @int = ISNULL(@int, SCOPE_IDENTITY());

"tilldela i UPPDATERING" har varit en giltig syntax för SQL Server under lång tid. Se SAMMANSLUTNING på MSDN för. Båda säger så här:




  1. GROUP BY för kontinuerliga rader i SQL

  2. Hur man gör en batchinsättning i MySQL

  3. Hur genererar man ett CREATE-skript för flera tabeller i pgAdmin III?

  4. Hur man hanterar transaktioner över flera databaser