Использование агента SQL Server для программного запуска удаленного пакета служб SSIS на сервере - PullRequest
2 голосов
/ 14 сентября 2009

Основываясь на примере здесь из MSDN , как можно предоставить переменные уровня пакета служб SSIS, если нужно вызвать пакет с помощью процедуры sp_start_job?

Вот пример кода из MSDN:

Dim jobConnection As SqlConnection
Dim jobCommand As SqlCommand
Dim jobReturnValue As SqlParameter
Dim jobParameter As SqlParameter
Dim jobResult As Integer

jobConnection = New SqlConnection("Data Source=(local);Initial Catalog=msdb;Integrated Security=SSPI")
jobCommand = New SqlCommand("sp_start_job", jobConnection)
jobCommand.CommandType = CommandType.StoredProcedure

jobReturnValue = New SqlParameter("@RETURN_VALUE", SqlDbType.Int)
jobReturnValue.Direction = ParameterDirection.ReturnValue
jobCommand.Parameters.Add(jobReturnValue)

jobParameter = New SqlParameter("@job_name", SqlDbType.VarChar)
jobParameter.Direction = ParameterDirection.Input
jobCommand.Parameters.Add(jobParameter)
jobParameter.Value = "RunSSISPackage"

jobConnection.Open()
jobCommand.ExecuteNonQuery()
jobResult = DirectCast(jobCommand.Parameters("@RETURN_VALUE").Value, Integer)
jobConnection.Close()

Select Case jobResult
  Case 0
    Console.WriteLine("SQL Server Agent job, RunSISSPackage, started successfully.")
  Case Else
    Console.WriteLine("SQL Server Agent job, RunSISSPackage, failed to start.")
End Select
Console.Read()

Как передать значения переменным внутри пакета служб SSIS с именем "RunSSISPackage"?

Ответы [ 2 ]

2 голосов
/ 14 сентября 2009

вы можете создать таблицу, которая будет действовать как очередь, где вы вставите строку, содержащую ваши параметры, а затем запустите задание. В TSQL, который затем запускается, просто выберите значения и отметьте опущенную строку очереди «C» или просто удалите ее и отправляйтесь в путь.

EDIT

попробуйте посмотреть Программно запустить пакет служб SSIS , который охватывает все следующие методы:

  • Программный запуск пакета с использованием объектной модели служб SSIS
  • Запустить процесс DTEXEC.EXE. DTEXEC - утилита командной строки для выполнения пакетов служб SSIS
  • Использовать агент SQL. Вы можете настроить работу агента для запуска вашего пакета
  • Используйте другую утилиту для запуска DTEXEC для вас
  • Создайте пользовательское приложение, которое будет запускать пакет
0 голосов
/ 15 сентября 2009

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

...