我已经安排了运行SSIS包的sql代理任务。我希望能够从.net运行SSIS包。有没有办法直接运行SSIS包或至少运行SQL代理任务,而后者又会运行SSIS包。
如果它有助于用C#编写的.net 3.5 Web应用程序
谢谢!
答案 0 :(得分:11)
可用于运行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包的命令行实用程序。请参阅命令行选项here。
使用SQL代理。您可以配置代理程序作业以运行程序包(如果程序包是静态的,则提前手动执行,或者在运行程序包之前使用SMO或使用SQL存储过程以编程方式执行此操作),然后使用SMO或sp_start_job以编程方式启动它。 / p>
使用其他一些实用程序为您启动DTEXEC。
创建一个将运行包的自定义应用程序(使用方法#1中描述的OM,或方法#2中使用DTEXEC)。将其公开为Web服务或DCOM类,从您的程序中调用此服务。
自己发明:)
答案 1 :(得分:0)
是。查看Microsoft.SqlServer.Dts.Runtime
命名空间。 Package类将提供运行它的方法。