División de valores delimitados en una columna SQL en varias filas

Realmente me gustaría recibir algunos consejos aquí, para brindar información de fondo en el que estoy trabajando al insertar los registros de seguimiento de mensajes de Exchange 2007 en SQL. Como tenemos millones y millones de filas por día, estoy usando una declaración Bulk Insert para insertar los datos en una tabla SQL.

De hecho, en realidad realicé la inserción masiva en una tabla temporal y, a continuación, a partir de ahí MEJETO los datos en la tabla en vivo, esto es para problemas de análisis de prueba, ya que, de lo contrario, algunos campos tienen comillas y otros valores.

Esto funciona bien, con la excepción del hecho de que la columna de dirección del destinatario es un campo delimitado separado por un; carácter, y puede ser increíblemente largo a veces, ya que puede haber muchos destinatarios de correo electrónico.

Me gustaría tomar esta columna y dividir los valores en varias filas que luego se insertarán en otra tabla. El problema es que todo lo que estoy intentando es tomar demasiado tiempo o no funcionar como deseo.

Toma estos datos de ejemplo:

message-id                                              recipient-address
[email protected]   [email protected]
[email protected]     [email protected]
[email protected]              [email protected];[email protected];[email protected]

Me gustaría que se formatee como se indica en mi tabla de Destinatarios:

message-id                                              recipient-address
[email protected]   [email protected]
[email protected]     [email protected]
[email protected]              [email protected]
[email protected]              [email protected]
[email protected]              [email protected]

¿Alguien tiene alguna idea sobre cómo puedo hacer esto?

Conozco PowerShell bastante bien, así que lo intenté, pero un bucle foreach incluso en registros de 28K tardó una eternidad en procesarse, necesito algo que se ejecute de la manera más rápida / eficiente posible.

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta