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

Utilisation de la sortie pour définir une variable dans une instruction de fusion

Non, vous devez utiliser une variable de table avec OUTPUT

Cependant, vous pouvez le faire...

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

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

Le "attribuer dans UPDATE" est une syntaxe valide pour SQL Server depuis longtemps. Voir MERGE sur MSDN aussi. Les deux disent ceci :