En Mitch señala las funciones de copia masiva (SqlBulkCopy
, bcp
y BULK INSERT
) solo maneja inserciones, no actualizaciones.
El enfoque normal de su problema es realizar la carga masiva en dos (o más) pasos:primero usa inserciones masivas para cargar sus datos en una tabla provisional y luego usa una consulta para insertar/actualizar registros en las tablas principales según los datos en las tablas de etapas, por ejemplo:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Consulte SQL SERVER – Insertar datos de una tabla a otra tabla para obtener información sobre cómo insertar en una tabla desde otra tabla; también es posible unirse en una ACTUALIZACIÓN, pero estoy luchando por encontrar un buen recurso sobre esto.