2015-04-10 3 views
0

Я работаю над созданием экспорта csv из базы данных SQL Server, и я был знаком с процессом для этого, что, по общему признанию, я никогда не понимал полностью. Процесс включает создание файла шаблона, который определяет столбцы и структуру для экспорта файлов. Как только файл «шаблон» существует, вы можете использовать задачу потока данных, чтобы заполнить его, и задачу файловой системы, чтобы скопировать ее в конечный пункт назначения с любым именем файла, которое вы хотели бы (часто это отметка даты/времени).создать плоский файл в пакете ssis

Есть ли причина, по которой вы не можете просто создать файл напрямую, без промежуточного «шаблона» файла? Я немного оглянулся и, похоже, все предлагаемые решения связаны с подключением к существующему файлу. Я вижу, что существует тип использования «Создать файл» для диспетчера соединений «Файл», но вы не можете использовать его в любой задаче файловой системы. Единственными файловыми диспетчерами типов файлов, которые вы можете использовать по отношению к файлу, являются «Копировать», «Удалить», «Переместить», «Переименовать» и «Установить атрибуты».

Есть ли способ создать файл во время выполнения пакета и заполнить его?

+0

Вы можете сделать это с помощью преобразования сценария. –

ответ

0

Весь смысл SSIS заключается в том, чтобы создать поток данных с метаданными, чтобы можно было манипулировать данными - если вы просто хотите напрямую обращаться к базе данных в CSV, вам, вероятно, лучше использовать команду bcp (bulk copy program) из команды линия. Если вы хотите включить его как часть пакета SSIS, просто добавьте задачу «Выполнение процесса» и добавьте к ней командную строку. Вы можете динамически изменять включенные столбцы или выходной файл, добавляя выражение к задаче. Вы также можете вызвать bcp, хотя TSQL, с помощью Excute SQL Task.

Еще один вариант - объединить все ваши столбцы в запросе с интервалом между запятой и вывести его в текстовый файл с одним очень широким столбцом.

Для документации на БКП смотрите here

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