Выполнить пакет служб SSIS SQL Server из хранимой процедуры - PullRequest
8 голосов
/ 29 мая 2009

У меня есть пакет служб SSIS, который хранится в БД SQL Server 2005. Я пытаюсь выполнить этот пакет из хранимой процедуры на том же сервере. Есть ли лучший способ, чем exec master..xp_cmdshell 'dtexec /SQL...

Я сталкиваюсь (я думаю) с проблемами разрешения файловой системы в xp_cmdshell, который препятствует выполнению

Ответы [ 3 ]

4 голосов
/ 31 мая 2009

Я рекомендую использовать Агент вместо:

  1. Создание прокси-учетной записи агента для учетной записи, которая будет выполнять задание
  2. Создание задания агента, которое запускает этот пакет
  3. Заставьте его использовать учетную запись прокси, созданную в # 1
  4. Проверьте работу
  5. В коде SQL используйте sp_start_job для запуска этого задания

Недостатком является то, что вы не можете легко передать параметры из SQL в пакет таким образом.

4 голосов
/ 29 мая 2009
1 голос
/ 19 августа 2015

С 2012 года MSSQL имеет каталог служб SSIS, где вы можете хранить свои пакеты там. Затем вы можете выполнить пакет с параметрами. Таким образом, мы можем избежать xp_cmdshell для вызова dtexec или sp_start_job без параметров. Ключевые SP: create_execution, set_execution_parameter_value и start_execution.

Из MSDN:

Чтобы запустить пакет на сервере с помощью SQL Server Management Studio

Развертывание и выполнение пакетов служб SSIS с использованием хранимых процедур

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