스크립트 구성 요소Script Component

스크립트 구성 요소는 스크립트를 호스팅하고 패키지에서 사용자 지정 스크립트 코드를 포함시키고 실행할 수 있도록 합니다.The Script component hosts script and enables a package to include and run custom script code. 패키지의 스크립트 구성 요소는 다음 용도로 사용할 수 있습니다.You can use the Script component in packages for the following purposes:

  • 데이터 흐름에서 여러 변환을 사용하는 대신 데이터에 여러 변환을 적용합니다.Apply multiple transformations to data instead of using multiple transformations in the data flow. 예를 들어 스크립트로 두 열에 값을 추가하고 합계의 평균을 계산할 수 있습니다.For example, a script can add the values in two columns and then calculate the average of the sum.

  • 기존 .NET 어셈블리에 있는 비즈니스 규칙에 액세스합니다.Access business rules in an existing .NET assembly. 예를 들어 스크립트로 Income 열에서 유효한 값 범위를 지정하는 비즈니스 규칙을 적용할 수 있습니다.For example, a script can apply a business rule that specifies the range of values that are valid in an Income column.

  • Integration ServicesIntegration Services 식 문법에서 제공되는 함수와 연산자 외에 사용자 지정 수식과 함수를 사용합니다.Use custom formulas and functions in addition to the functions and operators that the Integration ServicesIntegration Services expression grammar provides. 예를 들어 LUHN 수식을 사용하는 신용 카드 번호의 유효성을 검사합니다.For example, validate credit card numbers that use the LUHN formula.

  • 열 데이터의 유효성을 검사하고 잘못된 데이터가 포함된 레코드는 건너 뜁니다.Validate column data and skip records that contain invalid data. 예를 들어 스크립트로 적절한 우편 요금을 평가하여 금액이 너무 높거나 낮은 레코드를 건너뛸 수 있습니다.For example, a script can assess the reasonableness of a postage amount and skip records with extremely high or low amounts.

    스크립트 구성 요소를 사용하면 데이터 흐름에 사용자 지정 함수를 쉽고 빠르게 포함시킬 수 있습니다.The Script component provides an easy and quick way to include custom functions in a data flow. 하지만 여러 패키지에서 스크립트 코드를 재사용하려는 경우에는 스크립트 구성 요소 대신 사용자 지정 구성 요소를 프로그래밍하는 방식을 고려하십시오.However, if you plan to reuse the script code in multiple packages, you should consider programming a custom component instead of using the Script component. 자세한 내용은 사용자 지정 데이터 흐름 구성 요소 개발을 참조하세요.For more information, see Developing a Custom Data Flow Component.

참고

스크립트 구성 요소에 NULL인 열 값을 읽으려고 하는 스크립트가 포함되어 있는 경우 패키지를 실행할 때 스크립트 구성 요소가 실패합니다.If the Script component contains a script that tries to read the value of a column that is NULL, the Script component fails when you run the package. 스크립트에서 IsNull 메서드를 사용하여 열 값을 읽기 전에 열이 NULL인지 여부를 확인하는 것이 좋습니다.We recommend that your script use the IsNull method to determine whether the column is NULL before trying to read the column value.

스크립트 구성 요소는 원본, 변환 또는 대상으로 사용될 수 있습니다.The Script component can be used as a source, a transformation, or a destination. 이 구성 요소는 하나의 입력과 여러 출력을 지원합니다.This component supports one input and multiple outputs. 구성 요소의 사용 방법에 따라 입력이나 출력 또는 모두를 지원합니다.Depending on how the component is used, it supports either an input or outputs or both. 스크립트는 입력 또는 출력의 모든 행에 의해 실행됩니다.The script is invoked by every row in the input or output.

  • 원본으로 사용되는 스크립트 구성 요소는 여러 출력을 지원합니다.If used as a source, the Script component supports multiple outputs.

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

  • 대상으로 사용되는 스크립트 구성 요소는 하나의 입력을 지원합니다.If used as a destination, the Script component supports one input.

    스크립트 구성 요소는 오류 출력을 지원하지 않습니다.The Script component does not support error outputs.

    스크립트 구성 요소를 패키지에 적합한 선택 항목으로 결정한 후에는 입력과 출력을 구성하고 구성 요소에서 사용하는 스크립트를 개발하며 구성 요소 자체를 구성해야 합니다.After you decide that the Script component is the appropriate choice for your package, you have to configure the inputs and outputs, develop the script that the component uses, and configure the component itself.

스크립트 구성 요소 모드 이해Understanding the Script Component Modes

SSISSSIS 디자이너에서 스크립트 구성 요소에는 두 가지 모드인 메타데이터 디자인 모드와 코드 디자인 모드가 있습니다.In the SSISSSIS Designer, the Script component has two modes: metadata-design mode and code-design mode. 메타데이터 디자인 모드에서는 스크립트 구성 요소 입력 및 출력을 추가하고 수정할 수 있지만 코드를 작성할 수는 없습니다.In metadata-design mode, you can add and modify the Script component inputs and outputs, but you cannot write code. 따라서 입력과 출력이 구성된 다음에는 스크립트를 작성하기 위해 코드 디자인 모드로 전환해야 합니다.After all the inputs and outputs are configured, you switch to code-design mode to write the script. 스크립트 구성 요소는 입력 및 출력의 메타데이터로부터 기본 코드를 자동으로 생성합니다.The Script component automatically generates base code from the metadata of the inputs and outputs. 스크립트 구성 요소가 기본 코드를 생성한 다음 메타데이터를 변경하면 업데이트된 기본 코드가 사용자의 코드와 호환되지 않기 때문에 사용자의 코드가 더 이상 컴파일되지 않을 수 있습니다.If you change the metadata after the Script component generates the base code, your code may no longer compile because the updated base code may be incompatible with your code.

구성 요소에서 사용하는 스크립트 작성Writing the Script that the Component Uses

스크립트 구성 요소는 MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications)를 스크립트 작성 환경으로 사용합니다.The Script component uses MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts. VSTA는 스크립트 변환 편집기를 통해 액세스할 수 있습니다.You access VSTA from the Script Transformation Editor. 자세한 내용은 스크립트 변환 편집기(스크립트 페이지)을 참조하세요.For more information, see Script Transformation Editor (Script Page).

스크립트 구성 요소는 구성 요소 메타데이터를 나타내는 ScriptMain이라는 자동 생성된 클래스가 포함된 VSTA 프로젝트를 제공합니다.The Script component provides a VSTA project that includes an auto-generated class, named ScriptMain, that represents the component metadata. 예를 들어 스크립트 구성 요소가 3개의 출력이 있는 변환으로 사용되는 경우 ScriptMain에는 각 출력에 대한 메서드가 포함됩니다.For example, if the Script component is used as a transformation that has three outputs, ScriptMain includes a method for each output. ScriptMain은 스크립트에 대한 진입점입니다.ScriptMain is the entry point to the script.

VSTA에는 색 구분 기능이 포함된 Visual StudioVisual Studio 편집기, IntelliSense, 개체 브라우저 등 Visual StudioVisual Studio 환경의 모든 표준 기능이 포함됩니다.VSTA includes all the standard features of the Visual StudioVisual Studio environment, such as the color-coded Visual StudioVisual Studio editor, IntelliSense, and Object Browser. 스크립트 구성 요소에서 사용하는 스크립트는 패키지 정의에 저장됩니다.The script that the Script component uses is stored in the package definition. 패키지를 디자인할 때 스크립트 코드는 임시로 프로젝트 파일에 기록됩니다.When you are designing the package, the script code is temporarily written to a project file.

VSTA는 MicrosoftMicrosoft Visual C# 및 MicrosoftMicrosoft Visual Basic 프로그래밍 언어를 지원합니다.VSTA supports the MicrosoftMicrosoft Visual C# and MicrosoftMicrosoft Visual Basic programming languages.

스크립트 구성 요소를 프로그래밍하는 방법은 Extending the Data Flow with the Script Component을 참조하십시오.For information about how to program the Script component, see Extending the Data Flow with the Script Component. 스크립트 구성 요소를 원본, 변환 또는 대상으로 구성하는 방법에 대한 자세한 내용은 Developing Specific Types of Script Components을 참조하십시오.For more specific information about how to configure the Script component as a source, transformation, or destination, see Developing Specific Types of Script Components. 스크립트 구성 요소 사용 방법을 보여 주는 ODBC 대상 등의 추가 예는 Additional Script Component Examples를 참조하십시오.For additional examples such as an ODBC destination that demonstrate the use of the Script component, see Additional Script Component Examples.

참고

스크립트가 미리 컴파일되었는지 여부를 지정할 수 있었던 이전 버전과는 달리 모든 스크립트가 SQL Server 2008 Integration Services(SSIS)SQL Server 2008 Integration Services (SSIS) 이상 버전에 미리 컴파일되어 있습니다.Unlike earlier versions where you could indicate whether the scripts were precompiled, all scripts are precompiled in SQL Server 2008 Integration Services(SSIS)SQL Server 2008 Integration Services (SSIS) and later versions. 스크립트가 미리 컴파일된 경우 런타임 시 언어 엔진이 로드되지 않으므로 패키지가 보다 신속하게 실행됩니다.When a script is precompiled, the language engine is not loaded at run time and the package runs more quickly. 그러나 미리 컴파일된 이진 파일은 상당한 디스크 공간을 소비합니다.However, precompiled binary files consume significant disk space.

스크립트 구성 요소 구성Configuring the Script Component

다음과 같은 방법으로 스크립트 구성 요소를 구성할 수 있습니다.You can configure the Script component in the following ways:

  • 참조할 입력 열을 선택합니다.Select the input columns to reference.

    참고

    SSISSSIS 디자이너를 사용할 경우 입력을 한 개만 구성할 수 있습니다.You can configure only one input when you use the SSISSSIS Designer.

  • 구성 요소에서 실행할 스크립트를 제공합니다.Provide the script that the component runs.

  • 스크립트 언어를 지정합니다.Specify the script language.

  • 쉼표로 구분된 읽기 전용 및 읽기/쓰기 변수 목록을 제공합니다.Provide comma-separated lists of read-only and read/write variables.

  • 출력을 추가하고 스크립트가 할당할 출력 열을 추가합니다.Add more outputs, and add output columns to which the script assigns.

    SSISSSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.You can set properties through SSISSSIS Designer or programmatically.

디자이너에서 스크립트 구성 요소 구성Configuring the Script Component in the Designer

SSISSSIS 디자이너에서 이러한 속성을 설정하는 방법을 보려면 다음 항목을 클릭하십시오.For more information about how to set these properties in SSISSSIS Designer, click the following topic:

프로그래밍 방식으로 스크립트 구성 요소 구성Configuring the Script Component Programmatically

속성 창을 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.For more information about the properties that you can set in the Properties window or programmatically, click one of the following topics:

스크립트 구성 요소 유형 선택Select Script Component Type

스크립트 구성 요소 유형 선택 대화 상자를 사용하여 원본, 변환 또는 대상으로 사용하도록 미리 구성된 스크립트 변환 생성 여부를 지정할 수 있습니다.Use the Select Script Component Type dialog box to specify whether to create a Script Transformation that is preconfigured for use as a source, a transformation, or a destination.

스크립트 구성 요소에 대 한 자세한 참조 스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성합니다.To learn more about the Script component, see Configuring the Script Component in the Script Component Editor. 스크립트 구성 요소 프로그래밍 방법은 Extending the Data Flow with the Script Component을 참조하십시오.To learn about programming the Script component, see Extending the Data Flow with the Script Component.

옵션Options

원본, 대상또는 변환 에서 선택한 내용에 따라 스크립트 변환 편집기의 페이지와 스크립트 변환 구성이 달라집니다.Your selection of Source, Destination, or Transformation affects the configuration of the Script Transformation and the pages of the Script Transformation Editor.

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

스크립트 변환 편집기연결 관리자 를 사용하여 스크립트에서 사용할 연결을 지정할 수 있습니다.Use the Connection Managers page of the Script Transformation Editor to specify any connections that will be used by the script.

스크립트 구성 요소에 대 한 자세한 참조 스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성합니다.To learn more about the Script component, see Configuring the Script Component in the Script Component Editor. 스크립트 구성 요소 프로그래밍 방법은 Extending the Data Flow with the Script Component을 참조하십시오.To learn about programming the Script component, see Extending the Data Flow with the Script Component.

옵션Options

Connection managersConnection managers
스크립트에 사용할 수 있는 연결 목록을 표시합니다.View the list of connections available for use by the script.

이름Name
연결에 대한 설명이 포함된 고유 이름을 입력합니다.Type a unique and descriptive name for the connection.

연결 관리자Connection Manager
사용 가능한 연결 관리자 목록에서 선택 하거나 선택 <새 연결 > 열려는 SSIS 연결 관리자 추가 대화 상자.Select from the list of available connection managers, or select <New connection> to open the Add SSIS Connection Manager dialog box.

설명Description
연결에 대한 설명을 입력합니다.Type a description for the connection.

추가Add
연결 관리자 목록에 다른 연결을 추가합니다.Add another connection to the Connection managers list.

제거Remove
선택한 연결을 연결 관리자 목록에서 제거합니다.Remove the selected connection from the Connection managers list.

스크립트 변환 편집기(입력 열 페이지)Script Transformation Editor (Input Columns Page)

스크립트 변환 편집기 대화 상자의 입력 열 페이지를 사용하여 입력 열의 속성을 설정할 수 있습니다.Use the Input Columns page of the Script Transformation Editor dialog box to set properties on input columns.

참고

입력 열 페이지는 출력은 있지만 입력은 없는 원본 구성 요소에 대해서는 표시되지 않습니다.The Input Columns page is not displayed for Source components, which have outputs but no inputs.

스크립트 구성 요소에 대 한 자세한 참조 스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성합니다.To learn more about the Script component, see Configuring the Script Component in the Script Component Editor. 스크립트 구성 요소 프로그래밍 방법은 Extending the Data Flow with the Script Component을 참조하십시오.To learn about programming the Script component, see Extending the Data Flow with the Script Component.

옵션Options

입력 이름Input name
사용 가능한 입력 목록에서 선택합니다.Select from the list of available inputs.

사용 가능한 입력 열Available Input Columns
확인란을 사용하여 스크립트 변환에서 사용할 열을 지정합니다.Using the check boxes, specify the columns that the script transformation will use.

입력 열Input Column
각 행에 대해 사용 가능한 입력 열 목록에서 선택합니다.Select from the list of available input columns for each row. 선택 내용에 따라 사용 가능한 입력 열테이블의 확인란이 달라집니다.Your selections are reflected in the check box selections in the Available Input Columnstable.

출력 별칭Output Alias
각 출력 열의 별칭을 입력합니다.Type an alias for each output column. 기본값은 입력 열의 이름이지만 설명이 포함된 고유 이름을 임의로 선택할 수 있습니다.The default is the name of the input column; however, you can choose any unique, descriptive name.

사용 유형Usage Type
스크립트 변환에서 각 열을 ReadOnly 로 처리할지, 아니면 ReadWrite로 처리할지를 지정합니다.Specify whether the Script Transformation will treat each column as ReadOnly or ReadWrite.

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

스크립트 변환 편집기 대화 상자의 입/출력 페이지를 사용하여 스크립트 변환에 대한 입력 및 출력을 추가, 제거 및 구성할 수 있습니다.Use the Inputs and Outputs page of the Script Transformation Editor dialog box to add, remove, and configure inputs and outputs for the Script Transformation.

참고

원본 구성 요소는 출력이 있고 입력이 없지만 대상 구성 요소는 입력이 있고 출력이 없습니다.Source components have outputs and no inputs, while destination components have inputs but no outputs. 변환은 입력과 출력이 모두 있습니다.Transformations have both inputs and outputs.

스크립트 구성 요소에 대 한 자세한 참조 스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성합니다.To learn more about the Script component, see Configuring the Script Component in the Script Component Editor. 스크립트 구성 요소 프로그래밍 방법은 Extending the Data Flow with the Script Component을 참조하십시오.To learn about programming the Script component, see Extending the Data Flow with the Script Component.

옵션Options

Inputs and outputsInputs and outputs
왼쪽에서 입력 또는 출력을 선택하여 오른쪽에 있는 테이블에서 해당 속성을 확인합니다.Select an input or output on the left to view its properties in the table on the right. 편집할 수 있는 속성은 선택하는 입력 또는 출력에 따라 다릅니다.Properties available for editing vary according to the selection. 표시된 속성 중 다수는 읽기 전용입니다.Many of the properties displayed are read-only. 개별 속성에 대한 자세한 내용은 다음 항목을 참조하십시오.For more information on the individual properties, see the following topics.

공용 속성Common Properties

변환 사용자 지정 속성Transformation Custom Properties

출력 추가Add Output
목록에 출력을 추가합니다.Add an additional output to the list.

열 추가Add Column
새 출력 열을 추가할 폴더를 선택한 다음 열 추가를 클릭하여 열을 추가합니다.Select a folder in which to place the new output column, and then add the column by clicking Add Column.

출력 제거Remove Output
출력을 선택한 다음 출력 제거를 클릭하여 제거합니다.Select an output, and then remove it by clicking Remove Output.

열 제거Remove Column
열을 선택한 다음 열 제거를 클릭하여 제거합니다.Select a column, and then remove it by clicking Remove Column.

스크립트 변환 편집기(스크립트 페이지)Script Transformation Editor (Script Page)

스크립트 변환 편집기 대화 상자의 스크립트 탭을 사용하여 스크립트 및 관련 속성을 지정할 수 있습니다.Use the Script tab of the Script Transformation Editor dialog box to specify a script and related properties.

스크립트 구성 요소에 대 한 자세한 참조 스크립트 구성 요소 편집기에서 스크립트 구성 요소 구성합니다.To learn more about the Script component, see Configuring the Script Component in the Script Component Editor. 스크립트 구성 요소 프로그래밍 방법은 Extending the Data Flow with the Script Component을 참조하십시오.To learn about programming the Script component, see Extending the Data Flow with the Script Component.

옵션Options

속성Properties
스크립트 변환 속성을 보고 수정합니다.View and modify the properties of the Script transformation. 표시된 속성 중 다수는 읽기 전용입니다.Many of the properties displayed are read-only. 다음 속성을 수정할 수 있습니다.You can modify the following properties:

ValueValue DescriptionDescription
DescriptionDescription 스크립트 변환의 목적을 기준으로 스크립트 변환을 설명합니다.Describe the script transformation in terms of its purpose.
LocaleIDLocaleID 정렬과 날짜 및 시간 변환에 사용할 지역별 정보를 제공하는 로캘을 지정합니다.Specify the locale to provide region-specific information for ordering, and for date and time conversion.
이름Name 구성 요소에 대한 설명이 포함된 이름을 입력합니다.Type a descriptive name for the component.
ValidateExternalMetadataValidateExternalMetadata 스크립트 변환이 디자인 타임에서 외부 데이터 원본에 대해 열 메타데이터의 유효성을 검사할 것인지 여부를 나타냅니다.Indicate whether the Script transformation validates column metadata against external data sources at design time. false 는 실행 시간까지 유효성 검사를 지연합니다.A value of false delays validation until the time of execution.
ReadOnlyVariablesReadOnlyVariables 스크립트 변환을 통해 읽기 전용으로 액세스할 변수 목록을 쉼표로 구분하여 입력합니다.Type a comma-separated list of variables for read-only access by the Script transformation.

참고: 변수 이름은 대/소문자를 구분합니다.Note: Variable names are case-sensitive.
ReadWriteVariablesReadWriteVariables 스크립트 변환을 통해 읽기/쓰기로 액세스할 변수 목록을 쉼표로 구분하여 입력합니다.Type a comma-separated list of variables for read/write access by the Script transformation.

참고: 변수 이름은 대/소문자를 구분합니다.Note: Variable names are case-sensitive.
ScriptLanguageScriptLanguage 스크립트 구성 요소에 사용될 스크립트 언어를 선택합니다.Select the script language to be used by the Script component.

스크립트 구성 요소 및 스크립트 태스크에 대한 기본 스크립트 언어를 설정하려면 옵션 대화 상자의 일반 페이지에서 스크립트 언어 옵션을 사용합니다.To set the default script language for Script components and Script tasks, use the Scripting language option on the General page of the Options dialog box.
UserComponentTypeNameUserComponentTypeName 지정 된 ScriptComponentHost 클래스 및 Microsoft.SqlServer.TxScript 지 원하는 어셈블리는 SQL ServerSQL Server 인프라입니다.Specifies the ScriptComponentHost class and the Microsoft.SqlServer.TxScript assembly that support the SQL ServerSQL Server infrastructure.

스크립트 편집Edit Script
MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications)를 사용하여 스크립트를 작성하거나 수정할 수 있습니다.Use MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) to create or modify a script.

Integration Services 변환Integration Services Transformations

Extending the Data Flow with the Script ComponentExtending the Data Flow with the Script Component