For 루프 컨테이너For Loop Container

For 루프 컨테이너는 패키지의 반복 제어 흐름을 정의합니다.The For Loop container defines a repeating control flow in a package. 루프 구현은 프로그래밍 언어에서의 For 루프 구조와 유사합니다.The loop implementation is similar to the For looping structure in programming languages. For 루프 컨테이너는 각 루프를 반복할 때마다 식을 계산하고 식이 False가 될 때까지 워크플로를 반복합니다.In each repeat of the loop, the For Loop container evaluates an expression and repeats its workflow until the expression evaluates to False.

For 루프 컨테이너는 다음 요소를 사용하여 루프를 정의합니다.The For Loop container usesthe following elements to define the loop:

  • 루프 카운터에 값을 할당하는 초기화 식(옵션)An optional initialization expression that assigns values to the loop counters.

  • 루프를 중지 또는 계속할지를 테스트하는 식이 포함된 계산 식An evaluation expression that contains the expression used to test whether the loop should stop or continue.

  • 루프 카운터를 증가 또는 감소시키는 반복 식(옵션)An optional iteration expression that increments or decrements the loop counter.

    다음 다이어그램에서는 메일 보내기 태스크를 사용한 For 루프 컨테이너를 보여 줍니다.The following diagram shows a For Loop container with a Send Mail task. 초기화 식이 @Counter = 0이고 계산 식이 @Counter < 4이고 반복 식이 @Counter = @Counter + 1이면 루프가 4번 반복되어 4개의 전자 메일 메시지를 보냅니다.If the initialization expression is @Counter = 0, the evaluation expression is @Counter < 4, and the iteration expression is @Counter = @Counter + 1, the loop repeats four times and sends four e-mail messages.

    For 루프 컨테이너가 반복 하는 작업 4 번A For Loop container repeats a task four times

    식은 SQL ServerSQL Server Integration ServicesIntegration Services 의 유효한 식이어야 합니다.The expressions must be valid SQL ServerSQL Server Integration ServicesIntegration Services expressions.

    초기화 식과 대입 식을 만들려면 대입 연산자(=)를 사용할 수 있습니다.To create the initialization and assignment expressions, you can use the assignment operator (=). 이 연산자는 Integration Services 식 문법에서 다른 용도로 지원되지 않으며 For 루프 컨테이너의 초기화 및 대입 식 유형에만 사용할 수 있습니다.This operator is not otherwise supported by the Integration Services expression grammar and can only be used by the initialization and assignment expression types in the For Loop container. 대입 연산자를 사용 하는 모든 식 구문이 있어야 @Var = <expression>여기서 Var 런타임 변수 및 <식 >의 규칙을 준수 하는 식는 SSISSSIS 식 구문입니다.Any expression that uses the assignment operator must have the syntax @Var = <expression>, where Var is a run-time variable and <expression> is an expression that follows the rules of the SSISSSIS expression syntax. 식은 변수, 리터럴 및 SSIS 식 문법에서 지원하는 모든 연산자와 함수를 포함할 수 있습니다.The expression can include the variables, literals, and any operators and functions that the SSIS expression grammar supports. 변수의 데이터 형식으로 캐스팅할 수 있는 데이터 형식으로 식이 계산되어야 합니다.The expression must evaluate to a data type that can be cast to the data type of the variable.

    For 루프 컨테이너는 하나의 계산 식만 포함할 수 있습니다.A For Loop container can have only one evaluation expression. 따라서 For 루프 컨테이너는 모든 제어 흐름 요소를 동일한 횟수만큼 실행합니다.This means that the For Loop container runs all its control flow elements the same number of times. For 루프 컨테이너에 다른 For 루프 컨테이너가 포함될 수 있으므로 중첩 루프를 만들고 패키지에 복잡한 루프를 구현할 수 있습니다.Because the For Loop container can include other For Loop containers, you can build nested loops and implement complex looping in packages.

    For 루프 컨테이너의 트랜잭션 속성을 설정하여 패키지 제어 흐름의 하위 집합에 대해 트랜잭션을 정의할 수 있습니다.You can set a transaction property on the For Loop container to define a transaction for a subset of the package control flow. 이러한 방식으로 보다 세부적으로 트랜잭션을 관리할 수 있습니다.In this way, you can manage transactions at a more granular level. 예를 들어 For 루프 컨테이너가 테이블의 데이터를 업데이트하는 제어 흐름을 여러 번 반복하는 경우 For 루프와 해당 제어 흐름에서 트랜잭션을 사용하여 모든 데이터가 성공적으로 업데이트되지 않으면 데이터가 업데이트되지 않도록 구성할 수 있습니다.For example, if a For Loop container repeats a control flow that updates data in a table multiple times, you can configure the For Loop and its control flow to use a transaction to ensure that if not all data is updated successfully, no data is updated. 자세한 내용은 Integration Services 트랜잭션을 참조하세요.For more information, see Integration Services Transactions.

For 루프 컨테이너를 사용 하 여 제어 흐름에 반복 추가Add iteration to a control flow with the For Loop container

Integration ServicesIntegration ServicesFor 루프 컨테이너를 포함 한 패키지의 제어 흐름을 반복 하는 간단 하 게 하는 조건에 따라 반복을 포함 하는 제어 흐름 요소입니다. includes the For Loop container, a control flow element that makes it simple to include looping that conditionally repeats a control flow in a package. 자세한 내용은 For 루프 컨테이너가 될 때까지 워크플로를 반복합니다.For more information, see For Loop Container.

For 루프 컨테이너는 루프가 반복될 때마다 조건을 평가하고 조건이 False이면 중지합니다.The For Loop container evaluates a condition on each iteration of the loop, and stops when the condition evaluates to false. For 루프 컨테이너에는 루프를 초기화하고, 반복되는 제어 흐름의 실행을 중지하는 평가 조건을 지정하고, 평가 조건을 비교할 값을 업데이트하는 식에 값을 대입하는 식이 포함됩니다.The For Loop container includes expressions for initializing the loop, specifying the evaluation condition that stops execution of the repeating control flow, and assigning a value to an expression that updates the value against which the evaluation condition is compared. 평가 조건은 필수 항목이지만 초기화 및 대입 식은 선택 항목입니다.You must provide an evaluation condition, but initialization and assignment expressions are optional.

For 루프 컨테이너는 기능을 제공하는 것이 아니고 반복할 수 있는 제어 흐름을 만드는 구조만 제공합니다.The For Loop container provides no functionality; it provides only the structure in which you build the repeatable control flow. 컨테이너 기능을 제공하려면 적어도 하나 이상의 태스크를 For 루프 컨테이너에 포함시켜야 합니다.To provide container functionality, you must include at least one task in the For Loop container. 자세한 내용은 Integration Services Tasks를 참조하세요.For more information, see Integration Services Tasks.

For 루프 컨테이너에는 여러 태스크가 포함된 제어 흐름과 다른 컨테이너가 포함될 수 있습니다.The For Loop container can include a control flow with multiple tasks, and can include other containers. For 루프 컨테이너에 태스크 및 컨테이너를 추가하는 방법은 패키지에 추가하는 방법과 비슷하며, 태스크 및 컨테이너를 패키지가 아닌 For 루프 컨테이너로 끌어 온다는 점만 다릅니다.Adding tasks and containers to a For Loop container is similar to adding them to a package, except you drag the tasks and containers to the For Loop container instead of to the package. For 루프 컨테이너에 두 개 이상의 태스크 또는 컨테이너가 포함된 경우 패키지에서와 같은 방식으로 선행 제약 조건을 사용하여 이를 연결할 수 있습니다.If the For Loop container includes more than one task or container, you can connect them using precedence constraints just as you do in a package. 자세한 내용은 Precedence Constraints을(를) 참조하세요.For more information, see Precedence Constraints.

제어 흐름에서 For 루프 컨테이너를 추가 합니다.Add a For Loop container in a control flow

  1. 패키지에 For 루프 컨테이너를 추가합니다.Add the For Loop container to the package. 자세한 내용은 제어 흐름에서 태스크 또는 컨테이너 추가 또는 삭제를 참조하세요.For more information, see Add or Delete a Task or a Container in a Control Flow.

  2. For 루프 컨테이너에 태스크 및 컨테이너를 추가합니다.Add tasks and containers to the For Loop container. 자세한 내용은 제어 흐름에서 태스크 또는 컨테이너 추가 또는 삭제를 참조하세요.For more information, see Add or Delete a Task or a Container in a Control Flow.

  3. 선행 제약 조건을 사용하여 For 루프 컨테이너에 있는 태스크 및 컨테이너를 연결합니다.Connect tasks and containers in the For Loop container using precedence constraints. 자세한 내용은 기본 선행 제약 조건을 사용하여 태스크 및 컨테이너 연결을 참조하세요.For more information, see Connect Tasks and Containers by Using a Default Precedence Constraint.

  4. For 루프 컨테이너를 구성합니다.Configure the For Loop container. 자세한 내용은 For 루프 컨테이너 구성가 될 때까지 워크플로를 반복합니다.For more information, see Configure a For Loop Container.

For 루프 컨테이너 구성Configure the For Loop container

이 절차에서는 For 루프 편집기 대화 상자를 사용하여 For 루프 컨테이너를 구성하는 방법에 대해 설명합니다.This procedure describes how to configure a For Loop container by using the For Loop Editor dialog box.

For Loop 컨테이너의 예는 bimonkey.com의 실패하지 않는 SSIS 루프 를 참조하십시오.For an example of the For Loop container, see SSIS Loops that do not fail on bimonkey.com.

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 For 루프 컨테이너를 두 번 클릭하여 For 루프 편집기를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), double-click the For Loop container to open the For Loop Editor.

  2. 선택적으로 For 루프 컨테이너의 이름과 설명을 수정합니다.Optionally, modify the name and description of the For Loop container.

  3. 선택적으로 InitExpression 입력란에 초기화 식을 입력합니다.Optionally, type an initialization expression in the InitExpression text box.

  4. EvalExpression 입력란에 계산 식을 입력합니다.Type an evaluation expression in the EvalExpression text box.

    참고

    식은 부울로 계산되어야 합니다.The expression must evaluate to a Boolean. 식 결과가 false이면 루프 실행이 중지됩니다.When the expression evaluates to false, the loop stops running.

  5. 선택적으로 AssignExpression 입력란에 대입 식을 입력합니다.Optionally, type an assignment expression in the AssignExpression text box.

  6. 선택적으로 페이지에서 Expressions 를 클릭하고 For 루프 컨테이너의 속성에 대한 속성 식을 만듭니다.Optionally, click Expressions and, on the Expressions page, create property expressions for the properties of the For Loop container. 자세한 내용은 속성 식 추가 또는 변경을 참조하세요.For more information, see Add or Change a Property Expression.

  7. 확인 을 클릭하여 For 루프 편집기를 닫습니다.Click OK to close the For Loop Editor.

루프 편집기 대화 상자For Loop Editor dialog box

For 루프 편집기 대화 상자의 For 루프 페이지를 사용하여 지정한 조건이 False로 평가될 때까지 워크플로를 반복하는 루프를 구성할 수 있습니다.Use the For Loop page of the For Loop Editor dialog box to configure a loop that repeats a workflow until a specified condition evaluates to false.

For 루프 컨테이너 및 패키지에서의 해당 컨테이너 사용 방법은 For Loop Container를 참조하십시오.To learn about the For Loop container and how to use it in packages, see For Loop Container.

옵션Options

InitExpressionInitExpression
필요에 따라 루프에서 사용하는 값을 초기화하는 식을 제공합니다.Optionally, provide an expression that initializes values used by the loop.

EvalExpressionEvalExpression
루프를 중단할 것인지, 아니면 계속할 것인지를 평가하는 식을 제공합니다.Provide an expression to evaluate whether the loop should stop or continue.

AssignExpressionAssignExpression
필요에 따라 루프가 반복될 때마다 조건을 변경하는 식을 제공합니다.Optionally, provide an expression that changes a condition each time that the loop repeats.

이름Name
For 루프 컨테이너에 사용할 고유 이름을 제공합니다.Provide a unique name for the For Loop container. 이 이름은 태스크 아이콘에서 레이블로 사용됩니다.This name is used as the label in the task icon.

참고

개체 이름은 패키지 내에서 고유해야 합니다.Object names must be unique within a package.

DescriptionDescription
For 루프 컨테이너에 대한 설명을 제공합니다.Provide a description of the For Loop container.

For 루프 컨테이너와 식을 사용 하 여Use expressions with the For Loop container

평가 조건, 초기화 값 또는 대입 식을 지정하여 For 루프 컨테이너를 구성할 때는 문자 또는 식을 사용할 수 있습니다.When you configure the For Loop container by specifying an evaluation condition, initialization value, or assignment value, you can use either literals or expressions.

식에는 변수가 포함될 수 있습니다.The expressions can include variables. 변수를 사용하면 런타임 시 값을 업데이트하여 패키지를 보다 유연하고 쉽게 관리할 수 있습니다.The advantage of using variables is that they can be updated at run time, making the packages more flexible and easier to manage. 식의 최대 길이는 4000자입니다.The maximum length of an expression is 4000 characters.

식에서 변수를 지정할 때는 변수 이름 앞에 @ 기호를 사용해야 합니다.When you specify a variable in an expression, you must preface the variable name with the at sign (@). 명명 된 변수에 대 한 예를 들어 카운터, 입력 @Counter For 루프 컨테이너에서 사용 되는 식에 있습니다.For example, for a variable named Counter, enter @Counter in the expression that the For Loop container uses. 변수에 네임스페이스 속성을 포함시키려면 변수와 네임스페이스를 괄호로 묶어야 합니다.If you include the namespace property on the variable, you must enclose the variable and namespace in brackets. 예를 들어 한 카운터 에서 변수는 MyNamespace 네임 스페이스, 형식 [@MyNamespace::Counter].For example, for a Counter variable in the MyNamespace namespace, type [@MyNamespace::Counter].

For 루프 컨테이너에서 사용되는 변수는 For 루프 컨테이너의 범위 또는 패키지 컨테이너 계층에서 높은 수준의 컨테이너 범위에 정의되어 있어야 합니다.The variables that the For Loop container uses must be defined in the scope of the For Loop container or in the scope of any container that is higher in the package container hierarchy. 예를 들어 For 루프 컨테이너는 자체 범위에 정의된 변수와 패키지 범위에 정의된 변수를 사용할 수 있습니다.For example, a For Loop container can use variables defined in its scope and also variables defined in package scope. 자세한 내용은 Integration Services(SSIS) 변수패키지에서 변수 사용을 참조하세요.For more information, see Integration Services (SSIS) Variables and Use Variables in Packages.

SSISSSIS 식 문법에는 평가, 초기화 및 대입에 사용되는 복잡한 식을 구현할 수 있는 완벽한 연산자 및 함수가 제공됩니다.The SSISSSIS expression grammar provides a complete set of operators and functions for implementing complex expressions used for evaluation, initialization, or assignment. 자세한 내용은 Integration Services(SSIS) 식가 될 때까지 워크플로를 반복합니다.For more information, see Integration Services (SSIS) Expressions.

관련 항목:See Also

제어 흐름 Control Flow
Integration Services ( Ssis) 식Integration Services (SSIS) Expressions