SQLBulkCopy se usa junto con Transaction y dispara un evento cada vez que se copia un lote

c# sqlbulkcopy sql-server

Pregunta

Actualmente estoy cargando datos en el servidor MS SQL a través de SQLBulkCopy y Transactions. Me gustaría poder generar un evento después de que se haya cargado cada lote (ya probé el evento SQLRowsCopied y no funciona, consulte la cita a continuación)

Cotización de MSDN:

No se admite ninguna acción, como la actividad de transacción, en la conexión durante la ejecución de la operación de copia masiva, y se recomienda que no use la misma conexión utilizada durante el evento SqlRowsCopied. Sin embargo, puede abrir una conexión diferente.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.sqlrowscopied(v=vs.80).aspx

Así que, básicamente, no puedo tener mi pastel y comérmelo :( ¿Alguien sabe una solución al respecto ya que me gustaría disparar un evento después de que se haya cargado cada lote?

Gracias por tu ayuda.

Respuesta aceptada

Finalmente he decidido utilizar una transacción interna. ATM parece funcionar bien si se encuentra un error, el lote actual se deshace. Con respecto al comentario anterior de Ben, intenté esto, pero no es posible, no es como si pasara a través de una sección de código en la que podría provocar un evento. Al final, utilicé la propiedad notifyafter, que genera un evento después de que se hayan copiado x filas, para generar mi evento. Probablemente no sea la mejor manera de hacerlo, pero no pude encontrar una mejor manera. Espero que alguien encuentre esto útil.



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é