10

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

如果有帮助,那就是用 C# 编写的 .net 3.5 Web 应用程序

谢谢!

4

2 回答 2

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();
        }
    }
}
  • 启动 DTEXEC.EXE 进程。DTEXEC 是用于执行 SSIS 包的命令行实用程序。在此处查看其命令行选项。

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

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

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

  • 发明你自己的:)

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

于 2009-08-06T08:32:21.360 回答
0

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

于 2009-08-06T08:29:38.930 回答