w3schools usar ignore_dup_key ejemplo como sql-server sql-server-2008-r2 on-duplicate-key multiple-insert

usar - SQL Server: INSERT mĂșltiple con MERGE



merge sql server ejemplo (2)

No estoy seguro de si su pregunta es correcta, pero puede usar la instrucción MERGE en T-SQL de la siguiente manera:

  1. Si el elemento en la fuente no coincide con el elemento en el objetivo en los campos especificados, inserte en el destino.
  2. Si el elemento en la fuente coincide con el elemento en el objetivo en los campos especificados, actualice los otros campos en el objetivo con los valores correspondientes del origen.

En tu caso, la fusión sería algo como esto:

merge yourtable as target using (select value1 a, value2 b union select value3 a, value4 b) as source on target.column1 = source.a when matched and target.column2 <> source.b then update set target.col2 = source.b when not matched by target then insert (column1, column2) values (source.a, source.b);

Este ejemplo usa valores codificados, pero funciona cuando también se está insertando desde otra tabla.

Estoy intentando escribir bridge entre la base de datos MySQL y SQL Server 2008 R2 para sincronizar valores en tablas. Me quedé atrapado en múltiples valores de inserción en la base de datos de SQL Server. Usualmente en MySQL utilizo consultas como:

INSERT INTO table (column1, column2) VALUES(value1, value2), (value3, value4) ON DUPLICATE KEY UPDATE column2 = VALUES(value2);

¿Hay alguna manera de cómo hacer varias inserciones en SQL Server con MERGE ?

Gracias por las respuestas


MERGE INTO YourTable T USING ( VALUES ( ''value1'', ''value9'' ), ( ''value3'', ''value4'' ) ) AS S ( column1, column2 ) ON T.column1 = S.column1 WHEN MATCHED THEN UPDATE SET column2 = S.column2 WHEN NOT MATCHED THEN INSERT ( column1, column2 ) VALUES ( column1, column2 );