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 :