Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando a saída para definir uma variável em uma instrução de mesclagem


Não, você tem que usar uma variável de tabela com OUTPUT

No entanto, você pode fazer isso...
...
WHEN MATCHED THEN 
    UPDATE
    SET
       @int = ID,
       somecolumn = 'something'
WHEN NOT MATCHED THEN
    INSERT 
    VALUES ('stringtomatch',
        'something');

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

O "atribuir em ATUALIZAÇÃO" tem sido uma sintaxe válida para o SQL Server por um longo tempo. Consulte MERGE no MSDN também. Ambos dizem isso: