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