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:
- Si el elemento en la fuente no coincide con el elemento en el objetivo en los campos especificados, inserte en el destino.
- 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 );