你能从.net运行SSIS任务吗?

Arc*_*ace 10 .net c# sql-server sql-server-agent ssis

我已经安排了运行SSIS包的sql代理任务.我希望能够从.net运行SSIS包.有没有办法直接运行SSIS包或至少运行SQL代理任务,然后运行SSIS包.

如果它有助于用C#编写的.net 3.5 Web应用程序

谢谢!

Kir*_*tan 11

可用于运行SSIS包的选项是 -

  • 使用SSIS对象模型以编程方式运行包.这在这里的联机丛书中有详细讨论.

一个例子:

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace RunFromClientAppCS
{
    class Program
    {
        static void Main(string[] args)
        {
            string pkgLocation;
            Package pkg;
            Application app;
            DTSExecResult pkgResults;

            pkgLocation = "<package path>\CalculatedColumns.dtsx";
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            Console.WriteLine(pkgResults.ToString());
            Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 启动DTEXEC.EXE进程.DTEXEC是用于执行SSIS包的命令行实用程序.请在此处查看其命令行选项.

  • 使用SQL代理.您可以配置代理作业以运行程序包(如果程序包是静态的,则可以提前手动执行,或者在运行程序包之前使用SMO或使用SQL存储过程以编程方式),然后使用SMO或sp_start_job以编程方式启动它.

  • 使用其他一些实用程序为您启动DTEXEC.

  • 创建将运行程序包的自定义应用程序(使用方法#1中描述的OM,或方法#2中使用DTEXEC).将其公开为Web服务或DCOM类,从您的程序中调用此服务.

  • 发明你自己的:)

参考:以编程方式运行SSIS包