在 Visual Studio 中从 C# 调用 SSIS 任务



这似乎是对旧问题的重新哈希。 还有其他几个关于此的帖子,但解决方案建议使用 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 告诉我类型或命名空间不存在,并询问我是否缺少程序集引用。 我还在程序集引用的顶部看到了黄色的小警告三角形,但我不知道如何分辨它们的含义。 希望这是我忽略的愚蠢的东西,但非常感谢任何帮助。

我有一个完全不同的建议,那就是使用存储过程启动 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 开始执行。您将执行第一个存储的过程时创建并传回给您的执行 ID 传递给它。此步骤如下所示:

EXEC SSISDB.catalog.start_execution @ex_id;

最新更新