asp.net-core - 在MVC中执行ssis包

标签 asp.net-core ssis .net-core asp.net-core-mvc

下午,

是否可以使用 MVC 执行 SSIS 包?我正在创建的是一个 Web 应用程序,它将有一个按钮,一旦单击 SSIS 包就会运行。

SSIS 项目已设置并部署在 MSSQL 服务器上。

最佳答案

SQL Server 2012+ 提供了一种出色的机制,用于通过 Integration Services 目录 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 包的运行。导航到 Integration Services Catalog 并找到要运行的包。右键单击并选择执行...

Execute Package

配置菜单打开并找到您要指定的参数。提供示例值,但不要单击“确定”。相反,单击该脚本按钮并将脚本指定到新窗口(或剪贴板)

Configure Execution

现在您拥有 SSMS 为运行您的包而发出的确切命令。获取该代码,使用您选择的参数化方法让您的 MVC 程序为您的参数 stub 正确的运行时值,然后将所有 TSQL 包装在一个简单的数据库调用中(ole、ado、odbc 都没关系)

关于asp.net-core - 在MVC中执行ssis包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672763/

相关文章:

c# - 如何在 MVC6 中正确注入(inject) HttpContext

sql-server - SSIS 包中的 "ROW PER BATCH"和 "MAX INSERT COMMIT SIZE"是否有任何相关性?

c# - 在 Startup.cs 之外实现依赖注入(inject)

c# - 在 Open Id Connect 事件期间提示用户提供额外信息?

asp.net-mvc - 如何在 asp.net vNext 中添加日志

c# - 为什么 Razor UI 类库是作为 .NET Standard 而不是在 .Net core 中构建的

web-services - SSIS Web 服务任务中无法加载文件或程序集错误

c# - 如何修复从Yahoo下载报价文件并插入数据库的脚本任务代码?

c# - 在 Audit.Net 中有没有办法使用多个输出提供程序?

kubernetes - 如何从Kubernetes Engine访问Google KMS?