2009-08-06 13 views
10

J'ai une tâche d'agent sql planifiée qui exécute un paquet SSIS. Je veux être en mesure d'exécuter le package SSIS à partir de .net. Est-il possible d'exécuter le package SSIS directement ou au moins d'exécuter la tâche de l'agent SQL qui exécutera à son tour le package SSIS.Pouvez-vous exécuter une tâche SSIS à partir de .net?

Si elle l'aide est pour une application Web .NET 3.5 écrit en C#

Merci!

Répondre

11

Les options qui sont disponibles pour exécuter un package SSIS sont -

  • package Exécuter en utilisant SSIS programme Object Model. Ceci est discuté en détail dans la documentation en ligne here.

Exemple:

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(); 
     } 
    } 
} 
  • Démarrer processus dtexec.exe. DTEXEC est un utilitaire de ligne de commande pour l'exécution de packages SSIS. Voir ses options de ligne de commande here.

  • Utilisez l'agent SQL. Vous pouvez configurer un travail Agent pour exécuter votre package (soit manuellement à l'avance si le package est statique, soit en utilisant SMO ou en utilisant des procédures stockées SQL juste avant d'exécuter le package), puis le démarrer par programme SMO ou sp_start_job. Utilisez un autre utilitaire pour lancer DTEXEC à votre place.

  • Créez une application personnalisée qui exécutera le package (soit en utilisant OM comme décrit dans la méthode n ° 1, soit en utilisant DTEXEC comme dans la méthode n ° 2). Exposez-le en tant que service Web ou classe DCOM, appelez ce service depuis votre programme.

  • Inventez votre propre :)

Référence: Running SSIS Package Programmatically

+0

Im en utilisant votre solution pour un Winform. Je reçois des squigglies rouges sous les termes suivants: 'Application app;' ',' app = new Application(); ', et' pkg = app.LoadPackage (pkgLocation, null) '; avec les exceptions suivantes: 'Erreur 'Application' est une référence ambiguë entre 'System.Windows.Forms.Application' et 'Microsoft.SqlServer.Dts.Runtime.Application' \t' et 'Erreur Le type ' System.Windows.Forms.Application 'n'a aucun constructeur défini' - que dois-je changer pour Winform? –

0

Oui. Regardez dans l'espace de noms Microsoft.SqlServer.Dts.Runtime. La classe Package fournira les méthodes pour l'exécuter.

Questions connexes