Как создать в моем задании агента SQL Server шаг, который будет запускать мой пакет служб SSIS? - PullRequest
26 голосов
/ 16 июля 2011

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

Вот что у меня есть:

EXEC sp_add_job @job_name = 'My Job'
            ,@description = 'My First SSIS Job'
            ,@job_id = @jobid OUTPUT

EXEC sp_add_jobstep @job_id =@jobid
                    ,@step_name = N'Upload Data'
                    ,@step_id = 1
                    ,@command=N'/FILE "D:\Installs\Upload.dtsx"'
EXEC sp_add_jobstep @job_id = @jobid
                    ,@step_name = N'Download Data'
                    ,@step_id = 2
                    ,@command=N'/FILE "D:\Installs\Download.dtsx"'

К сожалению, когда я запускаю это, я получаю сообщение об ошибке

Неверный синтаксис рядом с '/'

Я подозреваю, что он жалуется на /FILE в моей команде.

Я не могу найти документацию о подходящем синтаксисе для использования в @Команда где угодно - я вытащил /FILE из старого кода, который я где-то нашел.Каков правильный синтаксис для запуска пакета SSIS в задании?

Ответы [ 2 ]

73 голосов
/ 16 июля 2011

Я запустил SQL-скрипт в вопросе, но не обнаружил никаких ошибок.Итак, я не уверен, что является причиной ошибки в вашем случае.Однако, если у вас есть доступ к SQL Server Agent через SQL Server Management Studio.Вот шаги для создания задания с использованием графического интерфейса пользователя.

  1. Перейдите в SQL Server Management Studio.Разверните SQL Server Agent и щелкните правой кнопкой мыши на Jobs, затем выберите New Job..., как показано на скриншоте # 1 .

  2. Укажите имя и владелец по умолчанию будетучетная запись, которая создает работу, но вы можете изменить ее в соответствии с вашими требованиями.Присвойте категорию, если хотите, а также предоставьте описание.См. Снимок экрана # 2 .

  3. В разделе «Шаги» нажмите New..., как показано на снимке экрана # 3 .

  4. В диалоговом окне «Новый шаг задания» укажите имя шага.Выберите SQL Server Inegration Services Package из Тип.Этот шаг будет выполняться под SQL Agent Service Account по умолчанию.Выберите источник пакета как File system и перейдите к пути пакета, нажав на многоточие.Это заполнит путь пакета.Смотрите скриншот # 4 .Если вы не хотите, чтобы шаг выполнялся по SQL Agent Service Account, обратитесь к шагам # 8 - 9 , чтобы узнать, как можно использовать другойaccount.

  5. Если у вас есть файл конфигурации служб SSIS (.dtsConfig) для пакета, щелкните вкладку Configurations и добавьте файл конфигурации, как показано на скриншоте # 5 .

  6. Нажмите OK, и на шаге 1 появится пакет, как показано на скриншоте # 6 .Точно так же вы можете создавать различные шаги.

  7. После того, как задание было создано, вы можете щелкнуть правой кнопкой мыши на задании и выбрать Script Job as --> CREATE To --> New Query Editor Window, чтобы сгенерировать сценарий, как показано на скриншоте # 7 .

  8. Чтобы запустить шаг служб SSIS под другой учетной записью, в Management Studio перейдите к Security --> right-click on Cedentials --> select New Credential..., как показано на скриншоте # 8 .

  9. В диалоговом окне New Credential введите имя, учетную запись Windows и пароль, под которым вы хотите выполнить шаги SSIS в заданиях SQL.Смотрите скриншот # 9 .Учетные данные будут созданы, как показано на скриншоте # 10 .

  10. Далее нам нужно создать прокси.В Management Studio перейдите к SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy..., как показано на скриншоте # 11 .

  11. В окне New Proxy Account укажите имя Proxy, выберите новоесоздал учетные данные, предоставьте описание и выберите пакет служб интеграции SQL Server, как показано на снимке экрана # 12 .Прокси-аккаунт должен быть создан, как показано на скриншоте # 13 .

  12. Теперь, если вы вернетесь к шагу в задании SQL, вы должны увидеть только что созданный проксиучетная запись в Запустить как выпадающего.Смотрите скриншот # 14 .

Надеюсь, это поможет.

Скриншот №1:

1

Снимок экрана № 2:

2

Снимок экрана № 3:

3

Снимок экрана № 4:

4

Снимок экрана № 5:

5

Скриншот № 6:

6

Скриншот № 7:

7

Снимок экрана № 8:

8

Снимок экрана № 9:

9

Снимок экрана № 10:

10

Снимок экрана № 11:

11

Скриншот № 12:

12

Скриншот № 13:

13

Снимок экрана № 14:

14

9 голосов
/ 16 июля 2011

Если вы создаете работу с использованием процедур sp_add ..., я думаю, вам нужно явно установить подсистему для вызова, а именно

EXEC sp_add_jobstep @job_id = @jobid,
@step_name = N'Upload Data',
@step_id = 1,
@subsystem = 'DTS',
@command=N'/FILE "D:\Installs\Upload.dtsx"'

Это эквивалентно @ Siva's Screenshot # 4 'Type' = 'Пакет служб интеграции с SQL Server'.

См. эту статью MSDN для полного списка подсистем.

РЕДАКТИРОВАТЬ : по умолчанию 'TSQL', поэтому ваша текущая установка пытается выполнить '/ FILE "D: \ Installs \ Upload.dtsx"' как команду T-SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...