您可以从 .net 运行 SSIS 任务吗?

发布于 2024-07-30 05:29:54 字数 168 浏览 4 评论 0原文

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

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

谢谢!

I have scheduled sql agent task which runs an SSIS package. I want to be able to run the SSIS package from .net. Is there a way to either run the SSIS package directly or at least run the SQL agent task which would in turn run the SSIS package.

If it helps it is for a .net 3.5 web app written in C#

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独守阴晴ぅ圆缺 2024-08-06 05:29:54

可用于运行 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 以编程方式启动它。 /p>

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

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

  • 发明你自己的:)

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

The options that are available to run a SSIS package are -

  • Run package programmatically using SSIS Object Model. This is discussed in details in Books Online here.

An Example:

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();
        }
    }
}
  • Start DTEXEC.EXE process. DTEXEC is command line utility for executing SSIS packages. See its command line options here.

  • Use SQL Agent. You can configure an Agent job to run your package (either do it manually in advance if the package is static, or programmatically using SMO or using SQL stored procedures just before running the package), and then start it programmatically using SMO or sp_start_job.

  • Use some other utility to start DTEXEC for you.

  • Create a custom application that will run the package (either using OM as described in method #1, or using DTEXEC as in method #2). Expose it as a web service or DCOM class, call this service from your program.

  • Invent your own :)

Reference: Running SSIS Package Programmatically

行至春深 2024-08-06 05:29:54

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

Yes. Look into Microsoft.SqlServer.Dts.Runtime namespace. The Package class will provide the methods to run it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文