SQL Server 2012+ 提供了一种出色的机制,用于通过集成服务目录 SSISDB 管理包及其执行。
以下代码提供了从位于 Demo 文件夹下的 MyProjectName SSIS 项目运行包 (Package2.dtsx) 的示例,其中 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 包的运行。导航到集成服务目录并找到要运行的包。右键单击并选择执行...
配置菜单打开并找到您要指定的参数。提供一个示例值,但不要单击“确定”。相反,单击该脚本按钮并将脚本指定到新窗口(或剪贴板)
现在您已经拥有了 SSMS 会发出的运行您的包的确切命令。获取该代码,使用您选择的参数化方法让您的 MVC 程序在参数的正确运行时值中存根,然后将所有 TSQL 包装在一个简单的数据库调用中(ole、ado、odbc 无关紧要)