스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성Configuring the Script Component in the Script Component Editor

스크립트 구성 요소에서 사용자 지정 코드를 작성 하려면 먼저 만들려는 데이터 흐름 구성 요소의 유형을 선택 해야-원본, 변환 또는 대상-다음 구성 요소의 메타 데이터 및 속성을 구성 하 고는 스크립트 변환 편집기합니다.Before you write custom code in the Script component, you must select the type of data flow component that you want to create—source, transformation, or destination—and then configure the component's metadata and properties in the Script Transformation Editor.

만들 구성 요소 유형 선택Selecting the Type of Component to Create

데이터 흐름 창에 스크립트 구성 요소를 추가 하면 SSISSSIS 디자이너는 스크립트 구성 요소 유형 선택 대화 상자가 나타납니다.When you add a Script component to the Data Flow pane of SSISSSIS Designer, the Select Script Component Type dialog box appears. 이 대화 상자에서 구성 요소를 원본, 변환 또는 대상으로 미리 구성합니다.You preconfigure the component as a source, transformation, or destination. 이 초기 선택 항목을 변경한 후에 구성 요소를 구성 계속 수 있습니다는 스크립트 변환 편집기합니다.After you make this initial selection, you can continue to configure the component in the Script Transformation Editor.

스크립트 구성 요소에 대 한 기본 스크립트 언어를 설정 하려면는 스크립트 언어 옵션에 일반 의 페이지는 옵션 대화 상자.To set the default script language for the Script component, use the Scripting language option on the General page of the Options dialog box. 자세한 내용은 General Page을 참조하세요.For more information, see General Page.

두 가지 디자인 타임 모드 이해Understanding the Two Design-Time Modes

SSISSSIS 디자이너에서 스크립트 구성 요소에는 메타데이터 디자인 모드와 코드 디자인 모드의 두 가지 모드가 있습니다.In SSISSSIS Designer, the Script component has two modes: metadata design mode and code design mode.

열 때는 스크립트 변환 편집기, 구성 요소 메타 데이터 디자인 모드를 시작 합니다.When you open the Script Transformation Editor, the component enters metadata design mode. 이 모드에서는 입력 열을 선택하고 출력 및 출력 열을 추가하거나 구성할 수 있지만 코드를 작성할 수는 없습니다.In this mode, you can select input columns, and add or configure outputs and output columns, but you cannot write code. 구성 요소의 메타데이터를 구성한 후에 코드 디자인 모드로 전환하여 스크립트를 작성할 수 있습니다.After you have configured the component's metadata, you can switch to code design mode to write the script.

클릭 하 여 코드 디자인 모드로 전환 하면 스크립트 편집, 스크립트 구성 요소 추가 변경을 방지 하기 위해 메타 데이터가 잠깁니다 한 다음 입력 및 출력의 메타 데이터에서 기본 코드를 자동으로 생성 합니다.When you switch to code design mode by clicking Edit Script, the Script component locks metadata to prevent additional changes, and then automatically generates base code from the metadata of the inputs and outputs. 이 자동 생성 코드가 완성된 후 사용자 지정 코드를 입력할 수 있습니다.After the autogenerated code is complete, you will be able to enter your custom code. 코드에서는 자동으로 생성된 기본 클래스를 사용하여 입력 행을 처리하고, 버퍼와 버퍼의 열에 액세스하고, 패키지에서 연결 관리자와 변수를 모두 강력한 형식의 개체로 검색할 수 있습니다.Your code uses the auto-generated base classes to process input rows, to access buffers and columns in the buffers, and to retrieve connection managers and variables from the package, all as strongly-typed objects.

코드 디자인 모드에서 사용자 지정 코드를 입력한 후에는 메타데이터 디자인 모드로 다시 전환할 수 있습니다.After entering your custom code in code design mode, you can switch back to metadata design mode. 메타데이터 디자인 모드로 전환해도 입력한 코드는 삭제되지 않지만 메타데이터를 추가로 변경하면 기본 클래스가 다시 생성됩니다.This does not delete any code that you have entered; however, subsequent changes to the metadata cause the base class to be regenerated. 메타데이터 변경으로 인해 사용자 지정 코드에서 참조하는 개체가 더 이상 존재하지 않거나 수정된 경우에는 이후 구성 요소의 유효성 검사에 실패할 수 있습니다.Afterward, your component may fail validation because objects referenced by your custom code may no longer exist or may have been modified. 이 경우 다시 생성된 기본 클래스에 대해 성공적으로 컴파일할 수 있도록 코드를 수동으로 수정해야 합니다.In this case, you must fix your code manually so that it can be compiled successfully against the regenerated base class.

메타데이터 디자인 모드에서 구성 요소 구성Configuring the Component in Metadata Design Mode

메타데이터 디자인 모드에서는 입력 열을 선택하고 출력과 출력 열을 추가 및 구성할 수 있지만 코드를 작성할 수는 없습니다.In metadata design mode, you can select input columns, and add and configure outputs and output columns, but you cannot write code. 구성 요소의 메타데이터를 구성한 후에 코드 디자인 모드로 전환하여 스크립트를 작성해야 합니다.After you have configured the component's metadata, switch to code design mode to write the script.

사용자 지정 편집기에서 구성해야 하는 속성은 스크립트 구성 요소의 사용 방식에 따라 달라집니다.The properties that you must configure in the custom editor depend on the usage of the Script component. 스크립트 구성 요소는 원본, 변환 또는 대상으로 구성될 수 있으며,The Script component can be configured as a source, a transformation, or a destination. 구성 요소의 사용 방법에 따라 입력이나 출력 또는 모두를 지원합니다.Depending on how the component is used, it supports either an input or outputs or both. 작성하는 사용자 지정 코드에서는 입력 및 출력 행과 열을 처리합니다.The custom code that you will write processes the input and output rows and columns.

스크립트 변환 편집기의 입력 열 페이지Inputs Columns Page of the Script Transformation Editor

입력 열 의 페이지는 스크립트 변환 편집기 변환 및 대상에 있지만 원본에 대 한 표시 됩니다.The Input Columns page of the Script Transformation Editor is displayed for transformations and destinations, but not for sources. 이 페이지에서 사용자 지정 스크립트에서 사용할 사용 가능한 입력 열을 선택하고 해당 열에 대한 읽기 전용 또는 읽기/쓰기 권한을 지정합니다.On this page, you select the available input columns that you want to make available to your custom script, and specify read-only or read/write access to them.

이 메타데이터를 기반으로 생성되는 코드 프로젝트에서 BufferWrapper 프로젝트 항목에는 각 입력에 대한 클래스가 포함되며 이 클래스에는 선택한 각 입력 열에 대한 형식화된 접근자 속성이 포함됩니다.In the code project that will be generated based on this metadata, the BufferWrapper project item contains a class for each input, and this class contains typed accessor properties for each input column selected. 예를 들어, 정수를 선택 하는 경우 CustomerID 열과 문자열 CustomerName 라는 입력 열을에서 CustomerInput, BufferWrapper 프로젝트 항목에 포함 됩니다는 CustomerInput 에서 파생 된 클래스 ScriptBuffer, 및 CustomerInput 클래스는 명명 된 정수 속성을 노출 CustomerID 및 명명 된 문자열 속성 CustomerName합니다.For example, if you select an integer CustomerID column and a string CustomerName column from an input named CustomerInput, the BufferWrapper project item will contain a CustomerInput class that derives from ScriptBuffer, and the CustomerInput class will expose an integer property named CustomerID and a string property named CustomerName. 이 규칙을 통해 다음과 같이 형식 검사를 사용하는 코드를 작성할 수 있습니다.This convention makes it possible to write code with type-checking like the following:

Dim currentCustomerID as Integer = CustomerInput.CustomerID  
Dim currentCustomerName as String = CustomerInput.CustomerName  

특정 유형의 데이터 흐름 구성 요소에 대 한 입력된 열을 구성 하는 방법에 대 한 자세한 내용은 아래에서 적절 한 예제를 참조 하십시오. 개발 특정 Types of Script Components합니다.For more information about how to configure input columns for a specific type of data flow component, see the appropriate example under Developing Specific Types of Script Components.

스크립트 변환 편집기의 입/출력 페이지Inputs and Outputs Page of the Script Transformation Editor

입 / 출력 의 페이지는 스크립트 변환 편집기 원본, 변환 및 대상에 대해 표시 됩니다.The Input and Outputs page of the Script Transformation Editor is displayed for sources, transformations, and destinations. 이 페이지에서는 사용자 지정 스크립트에서 사용할 입력, 출력 및 출력 열을 추가하고 제거하고 구성할 수 있습니다. 단 다음과 같은 제한 사항이 있습니다.On this page, you add, remove, and configure inputs, outputs, and output columns that you want to use in your custom script, within the following limitations:

  • 원본으로 사용되는 스크립트 구성 요소는 입력을 사용하지 않으며 여러 출력을 지원합니다.When used as a source, the Script component has no input and supports multiple outputs.

  • 변환으로 사용되는 스크립트 구성 요소는 하나의 입력과 여러 출력을 지원합니다.When used as a transformation, the Script component supports one input and multiple outputs.

  • 대상으로 사용되는 스크립트 구성 요소는 하나의 입력을 지원하며 출력은 사용하지 않습니다.When used as a destination, the Script component supports one input and has no outputs.

    이 메타데이터를 기반으로 생성되는 코드 프로젝트에서 BufferWrapper 프로젝트 항목에는 각 입력 및 출력에 대한 클래스가 포함됩니다.In the code project that will be generated based on this metadata, the BufferWrapper project item contains a class for each input and output. 예를 들어, 명명 된 출력을 만드는 경우 CustomerOutput, BufferWrapper 프로젝트 항목에 포함 됩니다는 CustomerOutput 에서 파생 된 클래스 ScriptBuffer, 및 CustomerOutput 클래스에는 만들어진 각 출력 열에 대 한 형식화 된 접근자 속성이 포함 됩니다.For example, if you create an output named CustomerOutput, the BufferWrapper project item will contain a CustomerOutput class that derives from ScriptBuffer, and the CustomerOutput class will contain typed accessor properties for each output column created.

    출력 열에 대해서만 구성할 수 있습니다는 입 / 출력 페이지.You can configure output columns only on the Input and Outputs page. 변환 및 대상에 대 한 입력된 열을 선택할 수 있습니다는 입력 열 페이지.You can select input columns for transformations and destinations on the Input Columns page. BufferWrapper 프로젝트 항목에 만들어진 형식화된 접근자 속성은 출력 열에 대한 쓰기 전용 속성이 됩니다.The typed accessor properties created for you in the BufferWrapper project item will be write-only for output columns. 입력된 열에 대 한 접근자 속성은 읽기 전용 또는 읽기/쓰기에서 각 열에 대해 선택한 사용 유형에 따라는 입력 열 페이지.The accessor properties for input columns will be read-only or read/write depending on the usage type that you have selected for each column on the Input Columns page.

    입 / 출력 데이터의 특정 형식에 대 한 구성에 대 한 자세한 내용은 흐름 구성 요소 참조의 해당 예 개발 특정 Types of Script Components합니다.For more information about configuring inputs and outputs for a specific type of data flow component see the appropriate example under Developing Specific Types of Script Components.

참고

오류 행의 자동 처리를 위해 스크립트 구성 요소의 출력을 오류 출력으로 직접 구성할 수는 없지만 적절할 때 추가 출력을 만들고 스크립트를 사용하여 행을 이 출력으로 전송하는 방식으로 오류 출력의 기능을 재현할 수 있습니다.Although you cannot directly configure an output as an error output in the Script component for automatic handling of error rows, you can reproduce the functionality of an error output by creating an additional output and using script to direct rows to this output when appropriate. 자세한 내용은 참조 스크립트 구성 요소에 대 한 오류 출력 시뮬레이션합니다.For more information, see Simulating an Error Output for the Script Component.

출력의 ExclusionGroup 및 SynchronousInputID 속성ExclusionGroup and SynchronousInputID Properties of Outputs

ExclusionGroup 속성은 동기 출력을 코드 필터링 또는 분기를 수행 하 고 각 행을 0이 아닌 동일한 공유 하는 출력 중 하나로 전송 하는 위치를 사용 하는 변환 에서만에서 0이 아닌 값 ExclusionGroup 값입니다.The ExclusionGroup property has a non-zero value only in transformations with synchronous outputs, where your code performs filtering or branching and directs each row to one of the outputs that share the same non-zero ExclusionGroup value. 예를 들어 변환에서는 행을 기본 출력이나 오류 출력 중 하나로 전송할 수 있습니다.For example, the transformation can direct rows either to the default output or to an error output. 이 시나리오에 대 한 추가 출력을 만들 때의 값을 설정 되었는지 확인는 SynchronousInputID 속성을 일치 하는 정수는 ID 구성 요소의 입력 합니다.When you create additional outputs for this scenario, make sure to set the value of the SynchronousInputID property to the integer that matches the ID of the component's input.

SynchronousInputID 속성은 동기 출력을 사용 하는 변환 에서만에서 0이 아닌 값입니다.The SynchronousInputID property has a non-zero value only in transformations with synchronous outputs. 이 속성 값이 0이면 해당 출력이 비동기적임을 나타냅니다.If the value of this property is zero, it means that the output is asynchronous. 이 속성에 있는 행에 전달 하는 통해 선택한 출력 또는 출력 새 행을 추가 하지 않고, 동기 출력에 포함 해야는 ID 구성 요소의 입력 합니다.For a synchronous output, where rows are passed through to the selected output or outputs without adding any new rows, this property should contain the ID of the component's input.

참고

경우는 스크립트 변환 편집기 첫 번째 출력 설정은 SynchronousInputID 출력의 속성은 ID 구성 요소의 입력 합니다.When the Script Transformation Editor creates the first output, the editor sets the SynchronousInputID property of the output to the ID of the component's input. 그러나 편집기 이후 출력을 만들 때 편집기 설정의 SynchronousInputID 0에 해당 출력의 속성입니다.However, when the editor creates subsequent outputs, the editor sets the SynchronousInputID properties of those outputs to zero.

동기 출력을 사용 구성 요소를 만드는 경우 각 출력 있어야 해당 SynchronousInputID 속성이로 설정 된 ID 구성 요소의 입력 합니다.If you are creating a component with synchronous outputs, each output must have its SynchronousInputID property set to the ID of the component’s input. 따라서 각 출력 편집기 만들어지는 첫 번째 출력 있어야 후 해당 SynchronousInputID 값을 0에서 변경는 ID 구성 요소의 입력 합니다.Therefore, each output that the editor creates after the first output must have its SynchronousInputID value changed from zero to the ID of the component's input.

비동기 출력을 사용 구성 요소를 만드는 경우 각 출력 있어야 해당 SynchronousInputID 속성이 0으로 설정 합니다.If you are creating a component with asynchronous outputs, each output must have its SynchronousInputID property set to zero. 따라서 첫 번째 출력 있어야 해당 SynchronousInputID 값에서 변경는 ID 0으로 구성 요소의 입력 합니다.Therefore, the first output must have its SynchronousInputID value changed from the ID of the component’s input to zero.

스크립트 구성 요소에서 행을 두 개의 동기 출력 중 하나로 전송의 예제를 보려면 스크립트 구성 요소를 사용 하 여 동기 변환 만들기합니다.For an example of directing rows to one of two synchronous outputs in the Script component, see Creating a Synchronous Transformation with the Script Component.

생성된 스크립트의 개체 이름Object Names in Generated Script

스크립트 구성 요소에서는 입력 및 출력의 이름을 구문 분석하고, 입력 및 출력의 열 이름을 구문 분석하며, 이러한 이름을 기반으로 BufferWrapper 프로젝트 항목에 클래스 및 속성을 생성합니다.The Script component parses the names of inputs and outputs, and parse the names of columns in the inputs and outputs, and based on these names generates classes and properties in the BufferWrapper project item. 찾은 이름에 유니코드 범주에 속하지 않는 문자가 포함 하는 경우 UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, 또는 DecimalDigitLetter, 생성 된 이름에 잘못 된 문자가 삭제 됩니다.If the found names include characters that do not belong to the Unicode categories UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, or DecimalDigitLetter, the invalid characters are dropped in the generated names. 예를 들어 공백은 삭제, 따라서 두 개의 입력 열 이름을 갖는 FirstName 및 [이름] 열 이름을 갖는 것으로 해석 됩니다 FirstName, 예기치 않은 결과가 발생 합니다.For example, spaces are dropped, therefore two input columns that have the names FirstName and [First Name] are both interpreted as having the column name FirstName, with unpredictable results. 이러한 문제가 발생하지 않도록 하려면 스크립트 구성 요소에서 사용하는 입력 및 출력의 이름과 입력 및 출력 열의 이름에는 이 섹션에 나열된 유니코드 범주의 문자만 사용해야 합니다.To avoid this situation, the names of inputs and outputs and of input and output columns used by the Script component should contain only characters in the Unicode categories listed in this section.

스크립트 변환 편집기의 스크립트 페이지Script Page of the Script Transformation Editor

스크립트 의 페이지는 스크립트 태스크 편집기, 고유 이름 및 스크립트 태스크에 대 한 설명을 지정 합니다.On the Script page of the Script Task Editor, you assign a unique name and a description for the Script task. 다음 속성의 값을 지정할 수도 있습니다.You can also assign values for the following properties.

참고

SQL Server 2008 Integration Services(SSIS)SQL Server 2008 Integration Services (SSIS) 와 그 이후 버전에서는 모든 스크립트가 미리 컴파일됩니다.In SQL Server 2008 Integration Services(SSIS)SQL Server 2008 Integration Services (SSIS) and later versions, all scripts are precompiled. 이전 버전에서을 설정 하 여 스크립트가 미리 컴파일 하는지 여부를 지정한는 Precompile 작업에 대 한 속성입니다.In previous versions, you specified whether scripts were precompiled by setting a Precompile property for the task.

ValidateExternalMetadata 속성ValidateExternalMetadata Property

부울 값은 ValidateExternalMetadata 속성 구성 요소의 디자인 타임에 외부 데이터 원본에 대 한 유효성 검사를 수행 하는지 여부 또는 실행된 시간까지 유효성 검사를 연기 해야 하는지 여부를 지정 합니다.The Boolean value of the ValidateExternalMetadata property specifies whether the component should perform validation against external data sources at design time, or whether it should postpone validation until run time. 기본적으로이 속성의 값은 True; 즉, 외부 메타 데이터 유효성을 검사 디자인 타임 및 런타임 시.By default, the value of this property is True; that is, the external metadata is validated both at design time and at run time. 이 속성의 값을 설정 하는 것이 좋습니다 False 시기는 외부 데이터 원본을 사용할 수 없는 디자인 타임에: 예를 들어 때 패키지 소스를 다운로드 하거나 런타임에만 대상을 만드는 합니다.You may want to set the value of this property to False when an external data source is not available at design time: for example, when the package downloads the source or creates the destination only at run time.

ReadOnlyVariables 및 ReadWriteVariables 속성ReadOnlyVariables and ReadWriteVariables Properties

쉼표로 구분된 기존 변수 목록을 이러한 속성의 값으로 입력하여 스크립트 구성 요소 코드 내에서 해당 변수를 읽기 전용 또는 읽기/쓰기 권한으로 액세스할 수 있게 할 수 있습니다.You can enter comma-delimited lists of existing variables as the values of these properties to make the variables available for read-only or read/write access within the Script component code. 변수는 코드에서 자동으로 생성된 기본 클래스의 ReadOnlyVariablesReadWriteVariables 속성을 통해 액세스할 수 있습니다.Variables are accessed in code through the ReadOnlyVariables and ReadWriteVariables properties of the autogenerated base class. 자세한 내용은 참조 스크립트 구성 요소에서 변수를 사용 하 여합니다.For more information, see Using Variables in the Script Component.

참고

변수 이름은 대소문자를 구분합니다.Variable names are case-sensitive.

ScriptLanguageScriptLanguage

스크립트 구성 요소에 대한 프로그래밍 언어로 MicrosoftMicrosoft Visual Basic 또는 MicrosoftMicrosoft Visual C#을 선택할 수 있습니다.You can select either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C# as the programming language for the Script component.

스크립트 편집 단추Edit Script Button

스크립트 편집 열립니다 단추는 MicrosoftMicrosoft Visual StudioVisual Studio 사용자 지정 스크립트를 작성 하는 응용 프로그램 (VSTA) IDE의 도구입니다.The Edit Script button opens the MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) IDE in which you write your custom script. 자세한 내용은 참조 코딩 및 스크립트 구성 요소 디버깅합니다.For more information, see Coding and Debugging the Script Component.

스크립트 변환 편집기의 연결 관리자 페이지Connection Managers Page of the Script Transformation Editor

연결 관리자 의 페이지는 스크립트 변환 편집기를 추가 하 고 사용자 지정 스크립트에 사용할 연결 관리자를 제거 합니다.On the Connection Managers page of the Script Transformation Editor, you add and remove connection managers that you want to use in your custom script. 일반적으로 원본 또는 대상 구성 요소를 만들 때는 연결 관리자를 참조해야 합니다.Normally you need to reference connection managers when you create a source or destination component.

이 메타 데이터에 따라 생성 되는 프로젝트 코드에는 ComponentWrapper 프로젝트 항목에 포함 한 연결 각 선택한 연결 관리자에 대 한 형식화 된 접근자 속성이 있는 컬렉션 클래스입니다.In the code project that will be generated based on this metadata, the ComponentWrapper project item contains a Connections collection class that has a typed accessor property for each selected connection manager. 형식화된 각 접근자 속성은 연결 관리자와 동일한 이름을 가지며 연결 관리자에 대한 참조를 IDTSConnectionManager100의 인스턴스로 반환합니다.Each typed accessor property has the same name as the connection manager itself and returns a reference to the connection manager as an instance of IDTSConnectionManager100. 예를 들어, 명명 된 연결 관리자를 추가한 경우 MyADONETConnection연결 관리자 페이지 편집기의 가져올 수 있습니다 연결 관리자에 대 한 참조를 스크립트에 다음 코드를 사용 하 여:For example, if you have added a connection manager named MyADONETConnection on the Connection Managers page of the editor, you can obtain a reference to the connection manager in your script by using the following code:

Dim myADONETConnectionManager As IDTSConnectionManager100 = _  
    Me.Connections.MyADONETConnection  

자세한 내용은 참조 스크립트 구성 요소에서 데이터 원본에 연결합니다.For more information, see Connecting to Data Sources in the Script Component.

관련 항목:See Also

코딩 및 스크립트 구성 요소 디버깅Coding and Debugging the Script Component