2009-08-06 76 views
10

我有運行SSIS包的計劃的SQL代理任務。我希望能夠從.net運行SSIS包。有沒有辦法直接運行SSIS包或至少運行SQL代理任務,然後運行SSIS包。你可以從.net運行SSIS任務嗎?

如果它幫助它是用C#編寫

感謝.NET 3.5的Web應用程序!

回答

11

可用來運行SSIS包的選項 -

  • 運行包以編程方式使用SSIS對象模型。這在聯機叢書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。

  • 創建將運行該程序包的自定義應用程序(使用OM,如方法#1中所述,或使用方法#2中的DTEXEC)。將其公開爲Web服務或DCOM類,從您的程序調用此服務。

  • 發明自己的:)

參考:Running SSIS Package Programmatically

+0

進出口使用您的一個WinForm的解決方案。我在下面得到了紅色的縮略圖:'Application app;','app = new Application();'和'pkg = app.LoadPackage(pkgLocation,null)'; 'Error''Application'是'System.Windows.Forms.Application'和'Microsoft.SqlServer.Dts.Runtime.Application'\t'和'Error \t之間的模糊參考'\t'類型' System.Windows.Forms.Application'沒有定義構造函數' - 我需要爲Winform更改什麼? – 2015-03-21 23:40:56

0

是的。查看Microsoft.SqlServer.Dts.Runtime命名空間。 Package類將提供運行它的方法。

相關問題