¿Hay algún comando BulkUpdate similar a BulkCopy en SQL Server 2008?

c# sqlbulkcopy sql-server sql-update

Pregunta

He usado el comando BulkCopy para transferir filas de una tabla a otra tabla con datos masivos de aproximadamente 3 a 5 millones de filas. Quiero actualizar estas filas.

¿Hay algún comando BulkUpdate similar al comando BulkCopy ? Estoy usando ASP.NET con C #.

Respuesta experta

Un enfoque común aquí es:

  • carga masiva (SqlBulkCopy) en una tabla de etapas * vacía: es decir, una tabla con las columnas / tipos correctos como los datos reales, pero no parte del sistema transaccional principal
  • Ahora haga una actualización uniendo los datos reales a los datos de ensayo, para actualizar los valores en los datos reales.

Respuesta experta

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

La biblioteca de operaciones masivas permite insertar, eliminar, actualizar y combinar millones de filas en pocos segundos.

Es muy fácil de aprender y usar si ya conoces la clase SqlBulkCopy.

var bulk = new BulkOperation(connection);
// ... Mappings ....

bulk.BulkUpdate(dt);

Respuesta popular

No, no hay.

P: ¿Qué es un "lac"?

Esto podría ayudar:

http://itknowledgeexchange.techtarget.com/itanswers/bulk-update-in-sql-server-2005/

Suponiendo que tiene una columna con valores específicos para mostrarle qué filas son cuáles entre estas dos tablas, esto se puede hacer con una simple instrucción de actualización.

UPDATE TableA
SET TableA.A1 = TableB.B1,
    TableA.A2 = TableB.B2  
FROM TableB  
WHERE TableA.A3 = TableB.B3

Si le preocupa crear una transacción masiva, puede dividir la operación en partes más pequeñas. Esto se hace a través de la palabra clave TOP

UPDATE TOP (1000) TableA
SET TableA.A1 = TableB.B1,
    TableA.A2 = TableB.B2  
FROM TableB  
WHERE TableA.A3 = TableB.B3
      AND TableA.A1 <> TableB.B1
      AND TableA.A2 <> TableB.B2

Puedes poner eso en un bucle ...

Aquí hay otro enlace (básicamente con la misma solución):

http://www.sqlusa.com/bestpractices2005/hugeupdate/



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é