2008-10-06 6 views

답변

9

Running SSIS package programmatically.

시작 DTEXEC.EXE 과정 :

나는 두 번째 방법을 선호합니다. DTEXEC은 SSIS 패키지를 실행하기위한 명령 줄 유틸리티입니다. 여기에 해당 명령 줄 옵션을 참조하십시오. http://msdn2.microsoft.com/en-us/library/ms162810.aspx

이점 : 프로세스 실행중인 패키지 안정성이 향상됩니다. 모든 프로그래밍 언어 (.NET 1.1 :) 포함)에서 사용할 수 있습니다. 변수 값을 설정하여 매개 변수를 전달하기 쉽습니다.

단점 : 또한 로컬에만 해당됩니다. 패키지 진행 상황에 대한 정보를 얻는 것이 어렵습니다 (SSIS 로깅은 대부분의 기능을 제공 할 수 있습니다). 새 프로세스 시작에 약간의 오버 헤드가 발생합니다 (큰 패키지의 경우 실행 시간과 비교할 때 최소 임).

ASP.NET 특정 : Win32 CreateProcess 함수는 스레드 가장을 무시합니다. 따라서 DTEXEC을 ASP.NET 프로세스 계정과 다른 계정으로 실행하려면 사용자가 이름/암호를 입력하여 Process.Start로 전달하거나 다음 KB에 설명 된 방법을 사용하여 가장 된 계정 http://support.microsoft.com/kb/889251에서 하위 프로세스를 실행해야합니다 .

+0

장점 : 당신은 당신의 패키지의 변수 컬렉션에 개체를 전달할 수 있습니다. (dtexec에 객체를 전달해보십시오 ...) – thijs

2

당신은 다음과 같이 프로그래밍하여 SSIS 패키지를 실행할 수 있습니다 : HTTP : //hassanboutougha.wordpress.com/2012/10/13/run- 당신은 전체 샘플을 원하는 경우

using System; 
using Microsoft.SqlServer.Dts.Runtime.Wrapper; 

namespace ConsoleApplicationSSIS 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Loading SSIS Service..."); 
      //Application object allows load your SSIS package 
      Application app = new Application(); 
      //In order to retrieve the status (success or failure) after running SSIS Package 
      DTSExecResult result ; 
      //Specify the location of SSIS package - dtsx file 
      string SSISPackagePath = @"C:\Microsofts\BI\SSIS\ConsoleApplicationSSIS\IntegrationServiceScriptTask\Package.dtsx"; 
      //Load your package 
      Package pckg = (Package)app.LoadPackage(SSISPackagePath,true,null); 
      //Execute the package and retrieve result 
      result = pckg.Execute(); 
      //Print the status success or failure of your package 
      Console.WriteLine("{0}", result.ToString()); 
      Console.ReadLine(); 
     } 
    } 
} 

가로 이동 프로그래밍 방식으로/

간단한 SSIS 패키지를 만드는 방법과 프로그래밍 방식으로 콘솔 응용 프로그램에서 프로그래밍 방식으로 호출하는 방법을 설명합니다. C : \ Program Files (x86) \ Microsoft SQL Server \ 100 \ SDK \ Assemblies \ Microsoft.SQLServer.DTSRuntimeWrap.dll 런타임 ssis 네임 스페이스를 참조하십시오.

또한 변수를 전달할 수도 있습니다 프로그래밍 방식으로 또한 ssis 패키지의 원본 및 대상 연결을 변경하십시오.

0

Windows 서비스에서 SSIS 패키지를 호출 할 수 있습니다. 그러나 Microsoft.SqlServer.Dts는 Windows 서비스가 실행될 시스템에 설치해야합니다. 해당 컴퓨터에 DTS를 설치 한 경우 직접 SSIS 패키지를 호출하십시오. 설치되어 있지 않으면 다음을 수행해야합니다.

  1. 하여 ADO.NET에서 SSIS 패키지
  2. 를 실행하는 작업을 만들기 SSIS 패키지
  3. 만들기 [윈도우 서비스 코드에 상주]를 SSIS를 실행하도록 구성 작업을 [실행 저장 프로 시저를 호출 꾸러미]. 다음은 .NET 코드에서 예제를 호출해야합니다.

EXEC msdb.dbo.sp_start_job N'YourJobName '

희망이 있습니다. 단순히 가이드는 여기에서 찾을 수 있습니다 단계별 create_executionset_execution_parameter

에 호출 저장 프로 시저를 작성하여 SQL 서버 2012에

당신은이 작업을 수행 할 수 있습니다 :

관련 문제