你能从.net运行SSIS任务吗?
我已经安排了运行SSIS包的sql代理任务。 我希望能够从.net运行SSIS包。 有没有办法直接运行SSIS包或至少运行SQL代理任务,然后运行SSIS包。
如果它有助于用C#编写的.net 3.5 Web应用程序
谢谢!
可用于运行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 = "\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包
是。 查看Microsoft.SqlServer.Dts.Runtime
命名空间。 Package类将提供运行它的方法。