update multiple into ejemplo duplicate mysql sql-server tsql

multiple - SQL Server ofrece algo como MySQL ON DUPLICATE KEY UPDATE



on duplicate key update mysql ejemplo (4)

Me sorprendió que ninguna de las respuestas en esta página contuviera un ejemplo de una consulta real, así que aquí tienes:

Un ejemplo más complejo de insertar datos y luego manejar duplicados

MERGE INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target USING (SELECT 77748 AS rtu_id ,''12B096876'' AS meter_id ,56112 AS meter_reading ,''20150602 00:20:11'' AS local_time) AS source (rtu_id, meter_id, meter_reading, time_local) ON (target.rtu_id = source.rtu_id AND target.time_local = source.time_local) WHEN MATCHED THEN UPDATE SET meter_id = ''12B096876'' ,meter_reading = 56112 WHEN NOT MATCHED THEN INSERT (rtu_id, meter_id, meter_reading, time_local) VALUES (77748, ''12B096876'', 56112, ''20150602 00:20:11'');

En MySQL, si especifica ON DUPLICATE KEY UPDATE y se inserta una fila que causaría un valor duplicado en un índice UNIQUE o PRIMARY KEY, se realizará una ACTUALIZACIÓN de la fila anterior. Por ejemplo, si la columna a se declara como ÚNICA y contiene el valor 1, las dos declaraciones siguientes tienen el mismo efecto:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE table SET c=c+1 WHERE a=1;

No creo haber encontrado nada parecido en T-SQL. ¿SQL Server ofrece algo comparable a la ACTUALIZACIÓN DE LLAVE DUPLICADA de MySQL?