2014-12-05 1 views
0

Мне нужно импортировать плоский файл ежедневно. Файл меняет свое имя каждый день. После обработки файла его необходимо перенести в другую папку.Как я могу выполнить задание агента SQL Server, если файл существует в папке сервера?

Я заметил, что могу назначать задания в SQL Server Agent, и я могу сказать, что он запускается каждый час или около того и что я могу добавить к нему команды CMD.

Решение, которое я нашел, состояло в том, чтобы запустить скрипт, чтобы проверить, существует ли файл, поскольку папка должна быть пустой или иметь хотя бы один файл.

Если файл существует, сценарий переименовывает файл в файл, используемый в пакете SSIS, а затем запускает пакет SSIS.

После того, как все будет сделано, оно должно переименовать файл снова на основе сегодняшней даты и переместить его в другую папку.

Если файл не существует, он ничего не должен делать и ждать еще час или около того, чтобы запустить его снова.

Какое наилучшее решение для этого сценария? Является ли сценарий хорошей идеей? Может быть, возможно ли добавить if/else - для файла - в пакет SSIS? Или даже заставить скрипт запускаться из самого пакета SSIS, а не добавлять его в Агент сервера?

EDIT:

Кажется, я был немного наивен, можно запускать сценарии VB с сервера. Будет ли это рекомендуемым решением? Это решает мою проблему, но мне просто интересно, хорошая ли это идея.

+0

Вы смотрели на сценарий наблюдател SSIS файл? Реализации SOme используют наблюдатели событий WMI http://microsoft-ssis.blogspot.com/2010/12/continuously-watching-files-with-wmi.html –

+0

Вы получаете файл с именем переменной (предположим, что у него есть дата или что-то еще в этом). Вы переименуете его в стандартное имя. Обработайте его. Переместите его и добавьте обработанную дату в имя файла. Что о суммировании ситуации? – billinkc

+0

Да. Я нашел несколько руководств в разделе наблюдателя событий WMI. Но теперь у меня проблемы с WQL-запросом. Это также было заложено в другом месте: http://stackoverflow.com/questions/21436377/how-to-execute-ssis-package-when-a-file-is-arrived-at-folder и более подробно здесь http://www.sqlservercentral.com/articles/Integration+Services+%28SSIS%29/90571/ –

ответ

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