2009-08-06 9 views
10

Ich habe SQL Agent-Task geplant, die ein SSIS-Paket ausführt. Ich möchte das SSIS-Paket von .net ausführen können. Gibt es eine Möglichkeit, das SSIS-Paket direkt auszuführen oder zumindest den SQL-Agenten-Task auszuführen, der wiederum das SSIS-Paket ausführt.Können Sie eine SSIS-Aufgabe von .net ausführen?

Wenn es hilft es für einen .net 3.5 Web-App in C#

Dank geschrieben ist!

Antwort

11

Die Optionen, die ein SSIS-Paket auszuführen sind verfügbar sind -

  • Run Paket programmatisch SSIS-Objektmodell verwenden. Dies wird ausführlich in Online-Dokumentation here diskutiert.

Ein Beispiel:

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(); 
     } 
    } 
} 
  • starten DTExec.exe Prozess. DTEXEC ist ein Befehlszeilendienstprogramm zum Ausführen von SSIS-Paketen. Siehe die Befehlszeilenoptionen here.

  • Verwenden Sie SQL Agent. Sie können einen Agentenjob so konfigurieren, dass er Ihr Paket ausführt (entweder manuell im Voraus, wenn das Paket statisch ist oder programmgesteuert SMO verwendet oder gespeicherte SQL-Prozeduren verwendet, bevor Sie das Paket ausführen) und dann programmgesteuert mit SMO oder sp_start_job starten.

  • Verwenden Sie ein anderes Dienstprogramm, um DTEXEC für Sie zu starten.

  • Erstellen Sie eine benutzerdefinierte Anwendung, die das Paket ausführen wird (entweder mit OM wie in Methode 1 beschrieben oder mit DTEXEC wie in Methode 2). Zeigen Sie den Dienst als Webdienst oder DCOM-Klasse von Ihrem Programm aus an.

  • Erfinde deine eigenen :)

Referenz: Running SSIS Package Programmatically

+0

Im Ihre Lösung für eine Winform verwenden. Ich bekomme rote Squigglies unter den folgenden: 'Application app;', 'app = new Application();', und 'pkg = app.LoadPackage (pkgLocation, null)' '; mit folgenden Ausnahmen: 'Fehler 'Anwendung' ist ein mehrdeutiger Verweis zwischen 'System.Windows.Forms.Application' und 'Microsoft.SqlServer.Dts.Runtime.Application' \t' und 'Fehler Der Typ ' System.Windows.Forms.Application "hat keine Konstruktoren definiert" - Was muss ich für Winform ändern? –

0

Ja. Schauen Sie in den Namensraum Microsoft.SqlServer.Dts.Runtime. Die Package-Klasse stellt die Methoden zum Ausführen bereit.

Verwandte Themen