首页 文章

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

提问于
浏览
10

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

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

谢谢!

2 回答

  • 0

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

    • 使用SSIS对象模型以编程方式运行包 . 这在书籍在线here中有详细讨论 .

    一个例子:

    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();
            }
        }
    }
    
    • 启动DTEXEC.EXE进程 . DTEXEC是用于执行SSIS包的命令行实用程序 . 请参阅其命令行选项here .

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

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

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

    • 发明你自己的:)

    参考:Running SSIS Package Programmatically

  • 11

    是 . 查看 Microsoft.SqlServer.Dts.Runtime 名称空间 . Package类将提供运行它的方法 .

相关问题