스크립트 태스크Script Task

스크립트 태스크는 SQL ServerSQL Server Integration ServicesIntegration Services 가 제공하는 기본 제공 태스크와 변환에서 사용할 수 없는 기능을 수행하는 코드를 제공합니다.The Script task provides code to perform functions that are not available in the built-in tasks and transformations that SQL ServerSQL Server Integration ServicesIntegration Services provides. 또한 여러 개의 태스크와 변환을 사용하는 대신 여러 기능을 하나의 스크립트에 결합할 수 있습니다.The Script task can also combine functions in one script instead of using multiple tasks and transformations. 스크립트 태스크는 데이터 행마다 한 번 수행하는 대신 패키지에서 한 번 또는 열거된 개체마다 한 번 수행해야 하는 작업에 사용합니다.You use the Script task for work that must be done once in a package (or once per enumerated object), instead than once per data row.

스크립트 태스크는 다음 용도로 사용할 수 있습니다.You can use the Script task for the following purposes:

  • 기본 제공 연결 형식에서 지원하지 않는 다른 기술을 사용하여 데이터에 액세스합니다.Access data by using other technologies that are not supported by built-in connection types. 예를 들어 스크립트는 ADSI(Active Directory Service Interface)를 사용하여 Active Directory에 액세스하고 사용자 이름을 추출할 수 있습니다.For example, a script can use Active Directory Service Interfaces (ADSI) to access and extract user names from Active Directory.

  • 패키지 특정 성능 카운터를 만듭니다.Create a package-specific performance counter. 예를 들어 스크립트는 복잡하거나 성능이 저조한 태스크를 실행하는 동안 업데이트되는 성능 카운터를 만들 수 있습니다.For example, a script can create a performance counter that is updated while a complex or poorly performing task runs.

  • 지정된 파일이 비어 있는지 확인하고 그렇지 않은 경우 포함된 행 수를 확인한 다음 이러한 정보를 기반으로 패키지의 제어 흐름을 수정합니다.Identify whether specified files are empty or how many rows they contain, and then based on that information affect the control flow in a package. 예를 들어 파일에 포함된 행이 없는 경우 변수 값을 0으로 설정하고 이 값을 평가하는 선행 제약 조건으로 인해 파일 시스템 태스크가 파일을 복사할 수 없도록 합니다.For example, if a file contains zero rows, the value of a variable set to 0, and a precedence constraint that evaluates the value prevents a File System task from copying the file.

    스크립트를 사용하여 한 집합에 있는 각 데이터 행에 대해 같은 작업을 수행해야 하는 경우에는 스크립트 태스크 대신 스크립트 구성 요소를 사용해야 합니다.If you have to use the script to do the same work for each row of data in a set, you should use the Script component instead of the Script task. 예를 들어 적절한 우표 금액을 평가하여 금액이 너무 높거나 낮은 데이터 행을 건너뛰려면 스크립트 구성 요소를 사용합니다.For example, if you want to assess the reasonableness of a postage amount and skip data rows that have very high or low amounts, you would use a Script component. 자세한 내용은 Script Component를 참조하세요.For more information, see Script Component.

    스크립트가 둘 이상의 패키지에 사용되는 경우 스크립트 태스크 대신 사용자 지정 태스크를 작성합니다.If more than one package uses a script, consider writing a custom task instead of using the Script task. 자세한 내용은 사용자 지정 태스크 개발을 참조하세요.For more information, see Developing a Custom Task.

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

태스크에서 사용하는 스크립트 작성 및 실행Writing and Running the Script that the Task Uses

스크립트 태스크는 MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts and the engine that runs those scripts.The Script task uses MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts and the engine that runs those scripts.

VSTA는 색 구분 기능이 포함된 Visual StudioVisual Studio 편집기, IntelliSense, Visual StudioVisual Studio 개체 탐색기 환경의 모든 표준 기능을 제공합니다.VSTA provides all the standard features of the Visual StudioVisual Studio environment, such as the color-coded Visual StudioVisual Studio editor, IntelliSense, and Object Explorer. 또한 다른 MicrosoftMicrosoft 개발 도구에서 사용하는 것과 동일한 디버거를 사용합니다.VSTA also uses the same debugger that other MicrosoftMicrosoft development tools use. 스크립트 작업의 중단점이 Integration ServicesIntegration Services 태스크 및 컨테이너의 중단점과 문제 없이 작동합니다.Breakpoints in the script work seamlessly with breakpoints on Integration ServicesIntegration Services tasks and containers. VSTA는 MicrosoftMicrosoft Visual Basic 및 MicrosoftMicrosoft Visual C# 프로그래밍 언어를 지원합니다.VSTA supports both the MicrosoftMicrosoft Visual Basic and MicrosoftMicrosoft Visual C# programming languages.

스크립트를 실행하려면 패키지가 실행되는 컴퓨터에 VSTA가 설치되어 있어야 합니다.To run a script, you must have VSTA installed on the computer where the package runs. 패키지를 실행하면 스크립트 태스크가 스크립트 엔진을 로드하고 스크립트를 실행합니다.When the package runs, the task loads the script engine and runs the script. 어셈블리에 대한 참조를 프로젝트에 추가하면 스크립트에서 외부 .NET 어셈블리에 액세스할 수 있습니다.You can access external .NET assemblies in scripts by adding references to the assemblies in the project.

참고

스크립트가 미리 컴파일되었는지 여부를 지정할 수 있었던 이전 버전과는 달리 모든 스크립트가 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 Task

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

  • 태스크에서 실행할 사용자 지정 스크립트를 제공합니다.Provide the custom script that the task runs.

  • Integration ServicesIntegration Services 런타임이 스크립트 태스크 코드에 대한 진입점으로 호출되는 VSTA 프로젝트의 메서드를 지정합니다.Specify the method in the VSTA project that the Integration ServicesIntegration Services runtime calls as the entry point into the Script task code.

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

  • 선택적으로 스크립트에서 사용할 읽기 전용 및 읽기/쓰기 변수 목록을 제공합니다.Optionally, provide lists of read-only and read/write variables for use in the script.

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

디자이너에서 스크립트 태스크 구성Configuring the Script Task in the Designer

다음 표에서는 스크립트 태스크용으로 로깅될 수 있는 ScriptTaskLogEntry 이벤트에 대해 설명합니다.The following table describes the ScriptTaskLogEntry event that can be logged for Script task. SSIS 로그 구성 대화 상자의 세부 정보 탭에는 ScriptTaskLogEntry 이벤트가 로깅 대상으로 선택되어 있습니다.The ScriptTaskLogEntry event is selected for logging on the Details tab of the Configure SSIS Logs dialog box. 자세한 내용은 Integration Services(SSIS) 로깅을 참조하세요.For more information, see Integration Services (SSIS) Logging.

로그 항목Log entry DescriptionDescription
ScriptTaskLogEntryScriptTaskLogEntry 스크립트에서 로깅을 구현한 결과를 보고합니다.Reports the results of implementing logging in the script. 이 태스크는 Log 개체의 Dts 메서드를 호출할 때마다 로그 항목을 기록합니다.The task writes a log entry for each call to the Log method of the Dts object. 이러한 항목은 코드가 실행될 때 기록됩니다.The task writes these entries when the code is run. 자세한 내용은 Logging in the Script Task을 참조하세요.For more information, see Logging in the Script Task.

SSISSSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목을 참조하십시오.For more information about the properties that you can set in SSISSSIS Designer, see the following topics:

프로그래밍 방식으로 스크립트 태스크 구성Configuring the Script Task Programmatically

이러한 속성을 프로그래밍 방식으로 설정하는 방법은 다음 항목을 참조하십시오.For more information about programmatically setting these properties, see the following topic:

스크립트 태스크 편집기(일반 페이지)Script Task Editor (General Page)

스크립트 태스크 편집기 대화 상자의 일반 페이지를 사용하여 스크립트 태스크의 이름을 지정하고 설명할 수 있습니다.Use the General page of the Script Task Editor dialog box to name and describe the Script task.

스크립트 태스크에 대한 자세한 내용은 스크립트 작업스크립트 태스크 편집기에서 스크립트 태스크 구성을 참조하십시오.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. 스크립트 태스크 프로그래밍 방법은 스크립트 태스크를 사용 하 여 패키지를 확장을 참조하십시오.To learn about programming the Script task, see Extending the Package with the Script Task.

옵션Options

이름Name
스크립트 태스크에 사용할 고유 이름을 제공합니다.Provide a unique name for the Script task. 이 이름은 태스크 아이콘에서 레이블로 사용됩니다.This name is used as the label in the task icon.

참고

태스크 이름은 패키지 내에서 고유해야 합니다.Task names must be unique within a package.

DescriptionDescription
스크립트 태스크에 대한 설명을 입력합니다.Type a description of the Script task.

스크립트 태스크 편집기(스크립트 페이지)Script Task Editor (Script Page)

스크립트 태스크 편집기 대화 상자의 스크립트 페이지를 사용하여 스크립트 속성을 설정하고 스크립트에서 액세스할 수 있는 변수를 지정할 수 있습니다.Use the Script page of the Script Task Editor dialog box to set script properties and specify variables that can be accessed by the script.

참고

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. 그러나 이전 버전에서는 PrecompileScriptIntoBinaryCode 속성을 설정하여 스크립트가 미리 컴파일되었음을 지정해야 합니다.In earlier versions, you set a PrecompileScriptIntoBinaryCode property to specify that the script was precompiled.

스크립트 태스크에 대한 자세한 내용은 Script TaskConfiguring the Script Task in the Script Task Editor을 참조하십시오.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. 스크립트 태스크 프로그래밍 방법은 스크립트 태스크를 사용 하 여 패키지를 확장을 참조하십시오.To learn about programming the Script task, see Extending the Package with the Script Task.

옵션Options

ScriptLanguageScriptLanguage
태스크에 대한 스크립트 언어를 MicrosoftMicrosoft Visual Basic 또는 MicrosoftMicrosoft Visual C# 중에서 선택합니다.Select the scripting language for the task, either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C#.

태스크에 대한 스크립트를 작성한 후에는 ScriptLanguage 속성의 값을 변경할 수 없습니다.After you have created a script for the task, you cannot change the value of the ScriptLanguage property.

스크립트 태스크에 대한 스크립트 언어를 설정하려면 옵션 대화 상자의 일반 페이지에서 스크립트 언어 옵션을 사용하십시오.To set the default scripting language for the Script task, use the Scripting language option on General page of the Options dialog box. 자세한 내용은 General Page을 참조하세요.For more information, see General Page.

EntryPointEntryPoint
Integration ServicesIntegration Services 런타임이 스크립트 태스크 코드에 대한 진입점으로 호출하는 메서드를 지정합니다.Specify the method that the Integration ServicesIntegration Services runtime calls as the entry point into the code of the Script task. 지정된 메서드는 MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications) 프로젝트의 ScriptMain 클래스에 있어야 합니다. ScriptMain 클래스는 스크립트 템플릿에서 생성하는 기본 클래스입니다.The specified method must be in the ScriptMain class of the MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) project The ScriptMain class is the default class generated by the script templates.

VSTA 프로젝트에서 메서드 이름을 변경한 경우 EntryPoint 속성의 값을 변경해야 합니다.If you change the name of the method in the VSTA project, you must change the value of the EntryPoint property.

ReadOnlyVariablesReadOnlyVariables
스크립트에 사용할 수 있는 읽기 전용 변수 목록을 쉼표로 구분하여 입력하거나 줄임표 단추()를 클릭하고 변수 선택 대화 상자에서 변수를 선택합니다.Type a comma-separated list of read-only variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

참고

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

ReadWriteVariablesReadWriteVariables
스크립트에 사용할 수 있는 읽기/쓰기 변수 목록을 쉼표로 구분하여 입력하거나 줄임표 단추()를 클릭하고 변수 선택 대화 상자에서 변수를 선택합니다.Type a comma-separated list of read/write variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

참고

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

스크립트 편집Edit Script
스크립트를 작성하거나 수정할 수 있는 VSTA IDE가 열립니다.Opens the VSTA IDE where you can create or modify the script.