Передача параметров в задание SQL, динамически запускающее пакет SSIS

У меня есть задание агента SQL Server, настроенное для запуска пакета SSIS из каталога. Сама работа работает хорошо. Пакет SSIS может принимать параметр, например USER.

Мне нужно запустить это задание из веб-приложения, по этой причине я запускаю его через пакетный скрипт, используя SQLCMD + dbo.sp_start_job

Вот строка сценария

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe" -Q "execute msdb.dbo.sp_start_job  @job_name=N'Sync'"

Это работает.

Есть ли способ передать параметр этому сценарию, чтобы при запуске задания он принимал параметр для пакета SSIS.

Я знаю, что могу жестко закодировать параметр в самом задании SQL, но мне нужно иметь возможность передавать его динамически?

Большое тебе спасибо!


person housemd    schedule 24.02.2021    source источник
comment
Может быть способ записать это как угодно, но если ничего не получится, один из способов выполнить ту же функцию - заставить веб-приложение записать значение или значения в таблицу, а затем перенастроить пакет для получения что ему нужно оттуда.   -  person Eric Brandt    schedule 24.02.2021
comment
Как вы уже догадались по названию. SQL Server Agent Job - это что-то, что выполняется агентом SQL Server, поэтому в основном у него нет пользователя, у которого он может запрашивать параметры ... однако вы можете указать, под каким пользователем / контекстом выполняются шаги в задании. В любом случае, вы можете попробовать то, что предложил Эрик, и заполнить таблицу, которая затем будет учтена вашими пакетами. Или вы изменяете свое приложение, чтобы пакеты выполнялись напрямую (не через Job), и передавали туда параметры.   -  person Tyron78    schedule 25.02.2021
comment
Если вы не отменяете значение параметра по умолчанию с помощью задания агента, вы можете изменить его с помощью catalog.set_object_parameter_value перед выполнением задания.   -  person vhoang    schedule 26.02.2021
comment
Это действительно сработало !!! Wohoo !!   -  person housemd    schedule 05.03.2021