我已经安排运行SSIS包的sql代理任务.我想要能够从.net运行SSIS包.有没有办法直接运行SSIS包,或至少运行sql代理任务,反过来运行SSIS包.
如果它有助于一个.net 3.5 Web应用程序写入C#
谢谢!
解决方法
可用于运行SSIS包的选项是 –
>使用SSIS对象模型以程序方式运行程序包.这在Books Online here中有详细的讨论.
一个例子:
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类,将其从您的程序中调用.
发明自己的:)