2010-10-12 5 views
4

У меня довольно сложный плоский файл, который я пытаюсь проанализировать с помощью SSIS. Общая структура плоского файла выглядит следующим образом:SSIS Flat File Unpivot

CustomerName, CustomerAddress, CustomerContactInfo, InvoiceDate1, InvoiceAmount1, InvoiceDate2, InvoiceAmount2, InvoiceDate3, InvoiceAmount3

Я пытаюсь загрузить это в две таблицы в моей базе данных, таблицу Customer и таблицу Invoice. CustomerName, CustomerAddress и CustomerContactInfo все должны быть вставлены в таблицу клиентов. InvoiceDate1 и InvoiceAmount1 должны быть строкой в ​​таблице счетов-фактур с внешним ключом в таблице Customer. То же самое для InvoiceDate2 и InvoiceDate3.

Я пробовал использовать только преобразование без изменений, но он тоже хочет отключить Клиента, и я не могу этого сделать. Есть ли хороший способ справиться с этим в SSIS?

ответ

2

В потоке данных вы можете использовать компонент многоадресной передачи, чтобы отправить данные по нескольким путям. После того, как компонент источника добавит компонент многоадресной рассылки. Из одного выхода Multicast отправьте данные в таблицу Customer. Вы можете игнорировать неиспользуемые столбцы в любом последующем компоненте.

Во втором выводе многоадресной передачи приложите преобразование Unpivot. Не игнорировать все столбцы, которые вы не хотите включать в таблицу счетов. Затем он обработает только столбец, который будет добавлен в таблицу.

Смежные вопросы