Вызов задачи SSIS из C # в Visual Studio - PullRequest
0 голосов
/ 09 октября 2018

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

Я следую пошаговым инструкциям с сайта Microsoft , но прежде всего, когда яоткройте Менеджер ссылок и разверните Сборки / Расширения, следующие два расширения не отображаются:

  • Microsoft.SqlServer.Management.Sdk.Sfc
  • Microsoft.SqlServer.Smo

На самом деле ничего не отображается: введите описание изображения здесь

Я действительно нашел их в C: \ Program Files \ Microsoft SQL Server \ 140 \ SDK \ Assemblies, поэтому явключил оттуда и перешел.

Моя проблема возникает на следующем шаге, когда я добавляю с использованием Microsoft.SqlServer.Management.IntegrationServices

Visual Studio сообщает мне, что тип или пространство имен не существуети спрашивает, не хватает ли я ссылки на сборку.Я также вижу маленькие желтые предупреждающие треугольники в верхней части ссылок на сборки, но я не могу понять, как сказать, что они означают.Надеюсь, это что-то глупое, что я упускаю из виду, но любая помощь очень ценится.

1 Ответ

0 голосов
/ 09 октября 2018

У меня есть предположение, что это совсем другое направление, и оно запускает пакеты служб SSIS с хранимыми процедурами.Затем в вашем коде C # вы выполняете только хранимые процедуры, что тривиально.

Сначала вы создаете выполнение с помощью хранимой процедуры SSISDB.catalog.create_execution, и ваш SQL будет выглядеть примерно так:

EXEC   SSISDB.catalog.create_execution
         @folder_name = N'myFolder',
         @project_name = @proj_name,
         @package_name = @myPackage,
         @reference_id = @ref_id,
         @use32bitruntime = 0,
         @execution_id = @ex_id OUTPUT;

Далее установите параметры, если вы используетеSSISDB.catalog.set_execution_parameter_value.SQL будет выглядеть примерно так:

EXEC SSISDB.catalog.set_execution_parameter_value @ex_id, 20, N'Acq_Event_Id', @ACQ_EVENT_ID;
--Set CUSTOMIZED_LOGGING_LEVEL to the name of the   custom log level for this execution
EXEC SSISDB.catalog.set_execution_parameter_value @ex_id, 50, N'LOGGING_LEVEL', 100;
EXEC SSISDB.catalog.set_execution_parameter_value @ex_id, 50, N'CUSTOMIZED_LOGGING_LEVEL', N'ETL_Logging';

Наконец, вы запускаете выполнение с использованием SSISDB.catalog.start_execution.Вы передаете ему идентификатор выполнения, который был создан и возвращен вам при выполнении первого сохраненного процесса.Этот шаг выглядит так:

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