Предыстория:
Я пытаюсь перебрать список файлов .sql, выполнить каждый файл, сохранить результат каждого запроса в текстовый файл с разделителями и специальным именем. Прямо сейчас я добиваюсь этого, используя полностью автономную программу на C#. Я новичок в SSIS, но очень хорошо разбираюсь в C#. Забегая вперед в ИТ-отделе, в котором я буду работать, SSIS является предпочтительным решением, поэтому объединение всего этого в гигантское действие сценария (к сожалению) не является решением.
Проблема:
Ниже приведено изображение моего потока управления.
Желаемый эффект заключается в следующем:
- Foreach перебирает папку с файлами .sql.
Задача «Загрузить SQL» присваивает содержимое текущего файла .sql переменной.
(Оба этих шага работают)
Задача потока данных:
- executes the SQL in the variable AND!
- сохраняет результат произвольного размера в переменную или файл.
(Вернемся к потоку управления:) Отсутствует: Сохранить отчет с другим разделителем и другим именем файла.
- Отчет о выгрузке запускает WinSCP, чтобы захватить файл и поместить его в n > 1 назначенное место(я).
Вопрос:
Как сделать так, чтобы поток данных не обращал внимания на количество столбцов? Например, в отчете 1 пять столбцов, в отчете 2 – 50, а в отчете 3 – 25. Все это в порядке. Меня не волнует, сколько у него столбцов, и в этом случае меня действительно меньше волнуют метаданные.
Я могу сделать это с помощью C#, просто сказав: «Вот таблица данных, заполните ее». Службам SSIS, по-видимому, не хватает этой способности адаптироваться к количеству столбцов. Да? Нет? Скажем, к черту все и просто сделать это с помощью объекта сценария? Какова полученная мудрость о том, что здесь делать?
Если этот вопрос выявит какое-то фундаментальное непонимание того, как работает SSIS, не стесняйтесь комментировать и это.
Заранее спасибо!