2009-08-06 4 views
10

私はSSISパッケージを実行するスケジュールされたSQLエージェントタスクを持っています。私は.netからSSISパッケージを実行できるようにしたい。 SSISパッケージを直接実行する方法と、少なくともSSISパッケージを実行するSQLエージェントタスクを実行する方法がありますか。.netからSSISタスクを実行できますか?

それは

おかげでC#で書かれた.NET 3.5のWebアプリケーションのためであることができます場合は!

答えて

11

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クラスとして公開し、プログラムからこのサービスを呼び出します。

  • あなた自身:) Inventの

参考:Running SSIS Package Programmatically

+0

ImはWinフォームのためのソリューションを使用して。私は次のように赤い四角形を表示しています: '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のために何を変更する必要がありますか? –

0

はい。 Microsoft.SqlServer.Dts.Runtime名前空間を参照してください。 Packageクラスは、それを実行するメソッドを提供します。

関連する問題