Usando SQLBulkCopy para Insertar / Actualizar la base de datos

asp.net sqlbulkcopy

Pregunta

Tengo un datatable con los registros. Estoy insertando registros en la tabla Sql usando SqlBulkCopy. Funciona bien. La próxima vez que obtenga el datatable con los mismos registros con pocos valores modificados, SqlBulkCopy está insertando otro conjunto de registros sin actualizar los detalles anteriores. ¿Puedo actualizar la tabla de SQL usando SqlBulkCopy? Por favor ayuda.

Gracias vix

Respuesta experta

Como mencionó AdaTheDev, SqlBulkCopy solo puede insertar, sin embargo, hay una biblioteca alternativa que permite realizar operaciones de Upsert.

Descargo de responsabilidad : soy el dueño del proyecto Operaciones a Granel

La biblioteca de operaciones masivas tiene un método " BulkMerge " que inserta o actualiza filas según la clave especificada.

var bulk = new BulkOperation(connection);

bulk.ColumnMappings.Add("ID", true);
bulk.ColumnMappings.Add("Column1");
bulk.ColumnMappings.Add("Column2");
bulk.ColumnMappings.Add("Column3");

bulk.BulkMerge(dt);

Respuesta popular

SqlBulkCopy solo se usa para insertar registros, no para actualizarlos como se explica aquí . Necesitarías usar una técnica diferente para hacer actualizaciones en masa.

por ejemplo, podría hacer SqlBulkCopy en una tabla de preparación, luego ejecutar algún SQL para actualizar desde allí a la tabla principal.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué