Ежедневный экспорт данных SQL Server (фиксированной длины) на SFTP-сервер - PullRequest
0 голосов
/ 04 ноября 2010

Привет, ребята, я делаю большую часть своей работы в MySQL, но недавно мне была поручена работа с базами данных на SQL Server.Я понимаю, что базы данных работают очень похоже.

Моя задача проста - ежедневно экспортировать данные из базы данных SQL Server 2008 в виде файла фиксированной длины на защищенный ftp-сервер.

Если бы я использовал php, я бы просто написалPHP-скрипт, который делает это с помощью cron.Но в этом случае у меня нет доступа к чему-либо из этого.Из того, что я прочитал, кажется, что я могу использовать сам SQL Server 2008, чтобы сделать это для меня.

Может кто-нибудь дать какие-либо указатели и дайте мне знать, если это простая задача.Я не хочу брать на себя работу, которая выходит за рамки моих навыков;)

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

Каждая установка SQL Server (включая выпуски Express) поставляется с небольшим инструментом под названием bcp.exe (утилита группового копирования). Он поддерживает два формата, нативный и символьный. Возможно, вас интересует формат символов, см. Использование формата символов для импорта или экспорта данных . Добавление запятой , к разделителю полей приведет к созданию файла CSV:

bcp database.dbo.table out datafile.csv -c -t, -T

Если вы хотите вывод с фиксированной длиной, то, вероятно, лучшее решение - указать файл формата. См. Указание форматов данных для совместимости с помощью bcp .

Получив файл, вы можете скопировать его на свой SFTP-сервер. Эквивалентом cron на платформах Windows является планировщик, см. Планировщик задач .

Есть более причудливые решения, такие как использование SSIS, как предложил Юджин, который даст вам больше власти и контроля. SSIS поставляется с SQL Server (но не с Express Edition), а в не-Express Edition у вас есть Агент SQL Server , который поможет вам планировать задачи.

1 голос
/ 04 ноября 2010

Если вы можете использовать SQL Server Integration Services, взгляните на SFTP-задачу в нашем продукте BizCrypto. С помощью сервисов интеграции вы можете создать файл и передать его на удаленный SFTP-сервер.

...