다음을 통해 공유


스크립트 태스크 및 스크립트 구성 요소 비교

Integration Services 디자이너의 제어 흐름 창에서 사용할 수 있는 스크립트 작업과 데이터 흐름 창에서 사용할 수 있는 스크립트 구성 요소는 Integration Services 패키지에서 매우 다른 용도로 사용됩니다. 이 작업은 범용 제어 흐름 도구인 반면, 구성 요소는 데이터 흐름의 원본, 변환 또는 대상으로 사용됩니다. 그러나 스크립트 태스크와 스크립트 구성 요소는 서로 다른 용도에도 불구하고 사용하는 코딩 도구와 개발자가 사용할 수 있도록 하는 패키지의 개체에 몇 가지 유사점이 있습니다. 유사점과 차이점을 이해하면 작업과 구성 요소를 보다 효과적으로 사용하는 데 도움이 될 수 있습니다.

스크립트 태스크와 스크립트 구성 요소 간의 유사점

스크립트 태스크와 스크립트 구성 요소는 다음과 같은 일반적인 기능을 공유합니다.

특징 설명
두 가지 디자인 타임 모드 작업과 구성 요소 모두에서 먼저 편집기에서 속성을 지정한 다음 개발 환경으로 전환하여 코드를 작성합니다.
VsTA(Microsoft Visual Studio Tools for Applications) 작업과 구성 요소 모두 동일한 VSTA IDE를 사용하며 Microsoft Visual Basic 또는 Microsoft Visual C#으로 작성된 코드를 지원합니다.
미리 컴파일된 스크립트 SQL Server 2008 Integration Services(SSIS)부터 모든 스크립트가 미리 컴파일됩니다. 이전 버전에서는 스크립트가 미리 컴파일되었는지 여부를 지정할 수 있습니다.

스크립트는 이진 코드로 미리 컴파일되어 더 빠른 실행을 허용하지만 패키지 크기는 증가합니다.
디버깅 작업과 구성 요소 모두 디자인 환경에서 디버깅하는 동안 중단점과 단계별 코드 실행이 지원됩니다. 자세한 내용은 스크립트 태스크 코딩 및 디버깅 및 [스크립트 구성 요소 코딩 및 디버깅](.)을 참조하세요. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md.

스크립트 태스크와 스크립트 구성 요소 간의 차이점

스크립트 태스크와 스크립트 구성 요소에는 다음과 같은 중요한 차이점이 있습니다.

특징 스크립트 작업 스크립트 구성 요소
제어 흐름/데이터 흐름 스크립트 작업은 디자이너의 제어 흐름 탭에서 구성되고 패키지의 데이터 흐름 외부에서 실행됩니다. 스크립트 구성 요소는 디자이너의 데이터 흐름 페이지에서 구성되며 데이터 흐름 태스크의 원본, 변환 또는 대상을 나타냅니다.
목적 스크립트 태스크는 거의 모든 범용 작업을 수행할 수 있습니다. 스크립트 구성 요소를 사용하여 원본, 변환 또는 대상을 만들 것인지 여부를 지정해야 합니다.
실행 스크립트 태스크는 패키지 워크플로의 특정 지점에서 사용자 지정 코드를 실행합니다. 루프 컨테이너 또는 이벤트 처리기에 배치하지 않는 한 한 한 번만 실행됩니다. 스크립트 구성 요소도 한 번 실행되지만 일반적으로 데이터 흐름의 각 데이터 행에 대해 주 처리 루틴을 한 번 실행합니다.
편집자 스크립트 태스크 편집기에서는 일반, 스크립트 및 식의 세 페이지가 있습니다. ReadOnlyVariables 및 및 ReadWriteVariablesScriptLanguage 속성만 작성할 수 있는 코드에 직접 영향을 둡니다. 스크립트 변환 편집기에서는 입력 열, 입력 및 출력, 스크립트연결 관리자 등 최대 4개의 페이지가 있습니다. 이러한 각 페이지에서 구성하는 메타데이터 및 속성은 코딩에 사용하기 위해 자동으로 생성된 기본 클래스의 멤버를 결정합니다.
패키지와의 상호 작용 스크립트 태스크용으로 작성된 코드에서 이 속성을 사용하여 Dts 패키지의 다른 기능에 액세스합니다. 속성은 Dts 클래스의 멤버입니다 ScriptMain . 스크립트 구성 요소 코드에서는 형식화된 접근자 속성을 사용하여 변수 및 연결 관리자와 같은 특정 패키지 기능에 액세스합니다.

PreExecute 메서드는 읽기 전용 변수만 액세스할 수 있습니다. 이 메서드는 PostExecute 읽기 전용 및 읽기/쓰기 변수 모두에 액세스할 수 있습니다.

이러한 메서드에 대한 자세한 내용은 [스크립트 구성 요소 코딩 및 디버깅](.)을 참조하세요. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md.
변수 사용 스크립트 태스크는 개체의 Dts 속성을 사용하여 Variables 태스크 ReadOnlyVariablesReadWriteVariables 속성을 통해 사용할 수 있는 변수에 액세스합니다. 다음은 그 예입니다.

[VB]

Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString



[C#]

string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString();
스크립트 구성 요소는 구성 요소 및 ReadWriteVariables 속성에서 만든 자동 생성된 기반 클래스의 ReadOnlyVariables 형식화된 접근자 속성을 사용합니다. 다음은 그 예입니다.

[VB]

Dim myVar as String myVar = Me.Variables.MyStringVariable



[C#]

string myVar; myVar = this.Variables.MyStringVariable;
연결 사용 스크립트 태스크는 개체의 ConnectionsDts 속성을 사용하여 패키지에 정의된 연결 관리자에 액세스합니다. 다음은 그 예입니다.

[VB]

Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)



[C#]

string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String);
스크립트 구성 요소는 편집기의 연결 관리자 페이지에서 사용자가 입력한 연결 관리자 목록에서 만든 자동 생성된 기본 클래스의 형식화된 접근자 속성을 사용합니다. 다음은 그 예입니다.

[VB]

Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection



[C#]

IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection;
이벤트 발생 스크립트 태스크는 개체의 EventsDts 속성을 사용하여 이벤트를 발생합니다. 다음은 그 예입니다.

[VB]

Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)



[C#]

Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0);
스크립트 구성 요소는 속성에서 반환 ComponentMetaData 된 인터페이스의 IDTSComponentMetaData100 메서드를 사용하여 오류, 경고 및 정보 메시지를 발생합니다. 다음은 그 예입니다.

[VB]

Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...)
로깅 (로그 기록) 스크립트 태스크는 개체의 메서드를 Dts 사용하여 Log 활성화된 로그 공급자에 정보를 기록합니다. 다음은 그 예입니다.

[VB]

Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)



[C#]

byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt);
스크립트 구성 요소는 자동 생성된 기본 클래스의 메서드를 사용하여 Log 활성화된 로그 공급자에 정보를 기록합니다. 다음은 그 예입니다.

[VB]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)



[C#]

byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt);
결과 반환 스크립트 태스크는 개체의 TaskResult 속성과 선택적 ExecutionValue 속성을 Dts 모두 사용하여 런타임에 결과를 알립니다. 스크립트 구성 요소는 데이터 흐름 태스크의 일부로 실행되며 이러한 속성 중 하나를 사용하여 결과를 보고하지 않습니다.

또한 참조하십시오

스크립트 태스크를 사용하여 패키지 확장
스크립트 구성 요소를 사용하여 데이터 흐름 확장
SQL Server Integration Services SSIS에서 스크립트 태스크를 사용하여 웹 서비스에 연결