2009-08-06 20 views
10

He programado la tarea del agente sql que ejecuta un paquete SSIS. Quiero poder ejecutar el paquete SSIS desde .net. ¿Hay alguna forma de ejecutar el paquete SSIS directamente o al menos ejecutar la tarea del agente SQL que a su vez ejecutaría el paquete SSIS?¿Se puede ejecutar una tarea de SSIS desde .net?

Si ayuda es para una aplicación .NET 3.5 web escrito en C#

Gracias!

Respuesta

11

Las opciones que están disponibles para ejecutar un paquete SSIS son -

  • paquete SSIS ejecuta mediante programación utilizando modelo de objetos. Esto se discute en detalles en Books Online here.

Un ejemplo:

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(); 
     } 
    } 
} 
  • proceso de inicio dtexec.exe. DTEXEC es una utilidad de línea de comandos para ejecutar paquetes de SSIS. Vea sus opciones de línea de comando here.

  • Utilice el Agente de SQL. Puede configurar un trabajo de agente para ejecutar su paquete (ya sea hacerlo manualmente de antemano si el paquete es estático, o utilizar SMO programáticamente o usar procedimientos almacenados SQL justo antes de ejecutar el paquete), y luego iniciarlo mediante programación utilizando SMO o sp_start_job.

  • Utilice alguna otra utilidad para iniciar DTEXEC por usted.

  • Cree una aplicación personalizada que ejecutará el paquete (ya sea utilizando OM como se describe en el método n. ° 1, o utilizando DTEXEC como en el método n. ° 2). Exponlo como un servicio web o clase DCOM, llama a este servicio desde tu programa.

  • inventar su propio :)

Referencia: Running SSIS Package Programmatically

+0

Im usando su solución para un Winform. Estoy obteniendo squigglies rojos en los siguientes: 'Aplicación de aplicación;', 'app = new Application();', y 'pkg = app.LoadPackage (pkgLocation, null)'; con las siguientes excepciones: 'error 'Aplicación' es una referencia ambigua entre 'System.Windows.Forms.Application' y 'Microsoft.SqlServer.Dts.Runtime.Application' \t' y 'Error El tipo ' System.Windows.Forms.Application 'no tiene constructores definidos' - ¿qué debo cambiar para Winform? –

0

Sí. Mire en el espacio de nombre Microsoft.SqlServer.Dts.Runtime. La clase de paquete proporcionará los métodos para ejecutarlo.

Cuestiones relacionadas