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

Ausgabe verwenden, um eine Variable in einer Merge-Anweisung festzulegen

Nein, Sie müssen eine Tabellenvariable mit OUTPUT

verwenden

Sie können dies jedoch tun ...

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

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

Der "Assign in UPDATE" ist seit langem eine gültige Syntax für SQL Server. Siehe MERGE auf MSDN zu. Beide sagen dies: