SQL Server 2012+ предлагает фантастический механизм для управления пакетами и их выполнения через каталог служб Integration Services, SSISDB.
В следующем коде представлен пример запуска пакета (Package2.dtsx) из SSIS MyProjectNameПроект, находящийся в папке Demo с параметром пакета IntensityLevel, поднялся до 11.
DECLARE @execution_id bigint;
EXEC SSISDB.catalog.create_execution
@package_name = N'Package2.dtsx'
, @execution_id = @execution_id OUTPUT
, @folder_name = N'Demo'
, @project_name = N'MyProjectName'
, @use32bitruntime = False
, @reference_id = NULL;
DECLARE @var0 int = 11;
EXEC SSISDB.catalog.set_execution_parameter_value
@execution_id
, @object_type = 30
, @parameter_name = N'IntensityLevel'
, @parameter_value = @var0;
DECLARE @var1 smallint = 1;
EXEC SSISDB.catalog.set_execution_parameter_value
@execution_id
, @object_type = 50
, @parameter_name = N'LOGGING_LEVEL'
, @parameter_value = @var1;
EXEC SSISDB.catalog.start_execution
@execution_id;
Простой способ получить пример того, как должен быть построен вышеупомянутый SQL, - открыть SQL Server Management Studio (SSMS).) и настройте запуск пакета служб SSIS.Перейдите в каталог служб Integration Services и найдите пакет, который вы хотите запустить.Щелкните правой кнопкой мыши и выберите Выполнить ...
Откроется меню конфигурации и найдите параметры, которые вы хотите указать.Укажите примерное значение, но НЕ НАЖИМАЙТЕ ОК.Вместо этого нажмите эту кнопку «Сценарий» и укажите сценарий для нового окна (или буфера обмена)
Теперь у вас есть точные команды, которые SSMS выдала бы для запускаваш пакетВозьмите этот код, используйте выбранный метод параметризации, чтобы ваша MVC-программа заглушала правильное значение времени выполнения для вашего параметра, а затем оберните весь этот TSQL простым вызовом базы данных (ole, ado, odbc, это не имеет значения)