Dzielenie rozdzielonych wartości w kolumnie SQL na wiele wierszy

Naprawdę chciałbym uzyskać kilka porad, aby podać pewne informacje podstawowe. Pracuję z wstawieniem dzienników śledzenia wiadomości z Exchange 2007 do SQL. Ponieważ mamy miliony wierszy dziennie, używam instrukcji Bulk Insert w celu wstawienia danych do tabeli SQL.

W rzeczywistości faktycznie wstawiam dane do tabeli tymczasowej, a następnie stamtąd łączę dane z tabelą na żywo, to jest dla zagadnień testowania, ponieważ niektóre pola mają cudzysłowy i takie są wartości.

Działa to dobrze, z wyjątkiem faktu, że kolumna adresu odbiorcy jest ograniczonym polem oddzielonym przez; postać i może być niewiarygodnie długa, ponieważ może być wielu odbiorców e-maili.

Chciałbym wziąć tę kolumnę i podzielić wartości na wiele wierszy, które następnie zostaną wstawione do innej tabeli. Problem polega na tym, że wszystko, co próbuję, albo trwa zbyt długo, albo nie działa tak, jak chcę.

Weź te przykładowe dane:

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

Chciałbym, aby zostało to sformatowane w następujący sposób w mojej tabeli Odbiorców:

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

Czy ktoś ma jakieś pomysły na to, jak mogę to zrobić?

Znam PowerShell całkiem dobrze, więc spróbowałem tego, ale pętla foreach nawet na rekordach 28K trwała wiecznie, potrzebowałem czegoś, co będzie działało tak szybko / wydajnie, jak to możliwe.

Dzięki!

questionAnswers(3)

yourAnswerToTheQuestion