Integration Services(SSIS) 변수

변수에는 SQL Server Integration Services 패키지와 해당 컨테이너, 태스크 및 이벤트 처리기에서 런타임에 사용할 수 있는 값이 저장됩니다. 스크립트 태스크와 스크립트 구성 요소의 스크립트에서도 변수가 사용될 수 있습니다. 태스크 및 컨테이너의 순서를 워크플로에 지정하는 선행 제약 조건에서는 해당 제약 조건 정의에 식이 포함된 경우에 변수가 사용될 수 있습니다.

Integration Services 패키지에서 변수는 다음 용도로 사용될 수 있습니다.

  • 패키지 요소의 속성을 런타임에 업데이트합니다. 예를 들어 Foreach 루프 컨테이너에서 허용하는 동시 실행 파일 수를 동적으로 설정할 수 있습니다.

  • 메모리 내 조회 테이블을 포함시킵니다. 예를 들어 패키지에서 데이터 값이 포함된 변수를 로드하는 SQL 실행 태스크가 실행될 수 있습니다.

  • 데이터 값이 포함된 변수를 로드하고 이를 사용하여 WHERE 절에서 검색 조건을 지정합니다. 예를 들어 스크립트 태스크의 스크립트는 SQL 실행 태스크의 Transact-SQL 문에서 사용하는 변수 값을 업데이트할 수 있습니다.

  • 정수가 포함된 변수를 로드하고 이 값을 사용하여 패키지 제어 흐름 내의 반복 작업을 제어합니다. 예를 들어 For 루프 컨테이너의 계산 식에서 변수를 사용하여 반복 횟수를 제어할 수 있습니다.

  • 런타임 시 Transact-SQL 문에 대한 매개 변수 값을 채웁니다. 예를 들어 패키지에서 SQL 실행 태스크를 실행하고 변수를 사용하여 Transact-SQL 문의 매개 변수를 동적으로 설정할 수 있습니다.

  • 변수 값이 포함된 식을 작성합니다. 예를 들어 파생 열 변환에서 변수 값을 열 값으로 곱하여 얻은 결과를 열에 채울 수 있습니다.

시스템 및 사용자 정의 변수

Integration Services에는 사용자 정의 변수 및 시스템 변수라는 두 가지 유형의 변수가 지원됩니다. 사용자 정의 변수는 패키지 개발자에 의해 정의되며 시스템 변수는 Integration Services에 의해 정의됩니다. 사용자 정의 변수는 패키지에 필요한 만큼 얼마든지 만들 수 있지만 시스템 변수는 추가로 만들 수 없습니다.

SQL 실행 태스크에서 SQL 문의 매개 변수에 변수를 매핑하는 데 사용하는 매개 변수 바인딩에 모든 변수, 즉 시스템 변수와 사용자 정의 변수를 사용할 수 있습니다. 자세한 내용은 SQL 실행 태스크SQL 실행 태스크의 매개 변수 및 반환 코드을 참조하십시오.

[!참고]

사용자 정의 변수 및 시스템 변수의 이름은 대/소문자를 구분합니다.

사용자 정의 변수는 패키지, Foreach 루프 컨테이너, For 루프 컨테이너, 시퀀스 컨테이너, 태스크 및 이벤트 처리기와 같은 모든 Integration Services 컨테이너 유형에 대해 만들 수 있습니다. 사용자 정의 변수는 해당 컨테이너에 대한 Variables 컬렉션의 멤버입니다.

SSIS 디자이너를 사용하여 패키지를 만드는 경우에는 SSIS 디자이너의 패키지 탐색기 탭에 있는 변수 폴더에서 Variables 컬렉션의 멤버를 확인할 수 있습니다. 폴더에는 사용자 정의 변수와 시스템 변수가 나열됩니다.

사용자 정의 변수는 다음과 같은 방식으로 구성할 수 있습니다.

  • 변수에 대한 이름 및 설명을 제공합니다.

  • 변수에 대한 네임스페이스를 지정합니다.

  • 값이 변경될 때 변수가 이벤트를 발생시킬지 여부를 나타냅니다.

  • 변수가 읽기 전용 또는 읽기/쓰기인지 나타냅니다.

  • 식의 계산 결과를 사용하여 변수 값을 설정합니다.

  • 패키지 범위 또는 태스크와 같은 패키지 개체의 범위의 변수를 만듭니다.

  • 변수의 값과 데이터 형식을 지정합니다.

시스템 변수에서 구성할 수 있는 유일한 옵션은 값이 변경될 때 이벤트를 발생시키는지 여부를 지정하는 것입니다.

각 컨테이너 유형에 따라 서로 다른 시스템 변수를 사용할 수 있습니다. 패키지 및 해당 요소에서 사용되는 시스템 변수에 대한 자세한 내용은 시스템 변수를 참조하십시오.

변수의 실제 사용 시나리오에 대한 자세한 내용은 패키지에서 변수 사용을 참조하십시오.

변수 속성

변수 창이나 속성 창에서 다음 속성을 설정하여 사용자 정의 변수를 구성할 수 있습니다. 일부 속성은 속성 창에서만 사용할 수 있습니다.

[!참고]

시스템 변수에서 구성할 수 있는 유일한 옵션은 값이 변경될 때 이벤트를 발생시키는지 여부를 지정하는 것입니다.

  • Description
    변수에 대한 설명을 지정합니다.

  • EvaluateAsExpression
    이 속성을 True로 설정하면 제공된 식이 변수 값을 설정하는 데 사용됩니다.

  • Expression
    변수에 할당되는 식을 지정합니다.

  • Name
    변수 이름을 지정합니다.

  • Namespace
    Integration Services는 UserSystem의 두 가지 네임스페이스를 제공합니다. 기본적으로 사용자 지정 변수는 User 네임스페이스에 속하고 시스템 변수는 System 네임스페이스에 속합니다. 사용자 정의 변수에 대한 추가 네임스페이스를 만들고 User 네임스페이스의 이름을 변경할 수 있지만 System 네임스페이스의 이름을 변경하거나, System 네임스페이스에 변수를 추가하거나, 시스템 변수를 다른 네임스페이스에 할당할 수 없습니다.

  • RaiseChangedEvent
    이 속성을 True로 설정하면 변수에서 값을 변경할 때 OnVariableValueChanged 이벤트가 발생합니다.

  • ReadOnly
    이 속성을 False로 설정하면 변수는 읽기/쓰기 변수입니다.

  • Scope

    [!참고]

    이 속성 설정은 변수 창에서 변수 이동을 클릭한 경우에만 변경할 수 있습니다.

    변수는 패키지의 범위나 패키지에 들어 있는 컨테이너, 태스크 또는 이벤트 처리기의 범위 내에서 생성됩니다. 패키지 컨테이너는 컨테이너의 최상위 계층에 있으므로 패키지 범위의 변수는 전역 변수와 같은 기능을 수행하며 패키지의 모든 컨테이너에서 사용될 수 있습니다. 이와 비슷하게 For 루프 컨테이너와 같은 컨테이너의 범위 내에서 정의된 변수는 해당 For 루프 컨테이너 내의 모든 태스크 또는 컨테이너에서 사용될 수 있습니다.

    패키지에서 패키지 실행 태스크를 사용하여 다른 패키지가 실행되는 경우 호출한 패키지 또는 실행 패키지 태스크의 범위 내에서 정의된 변수는 부모 패키지 변수 구성 유형을 통해 호출된 패키지에서 사용할 수 있도록 설정될 수 있습니다. 자세한 내용은 패키지 구성을 참조하십시오.

  • IncludeInDebugDump
    디버그 덤프 파일에 변수 값이 포함되는지 여부를 나타냅니다.

    사용자 정의 변수 및 시스템 변수의 경우 InclueInDebugDump 옵션의 기본값은 true입니다.

    그러나 사용자 정의 변수의 경우 다음과 같은 조건이 충족될 때 시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정합니다.

    • EvaluateAsExpression 변수 속성이 true로 설정되면 시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정합니다.

      디버그 덤프 파일에 식의 텍스트를 변수 값으로 포함하려면 IncludeInDebugDump 옵션을 true로 설정합니다.

    • 변수 데이터 형식이 문자열로 변경되면 시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정합니다.

    시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정하면 사용자가 선택한 값이 재정의될 수 있습니다.

  • Value
    사용자 정의 변수의 값은 문자 또는 식일 수 있습니다. 변수에는 변수 값과 값의 데이터 형식을 설정하기 위한 옵션이 포함됩니다. 이 두 속성은 호환되어야 합니다. 예를 들어 정수 데이터 형식에는 문자열 값을 사용할 수 없습니다.

    변수가 식으로 계산되도록 구성된 경우에는 식을 제공해야 합니다. 런타임에 식이 계산되고 변수에는 해당 계산의 결과가 설정됩니다. 예를 들어 변수에 DATEPART("month", GETDATE()) 식이 사용된 경우 이 변수의 값은 현재 날짜의 월에 해당하는 숫자입니다. 식은 SSIS 식 문법 구문을 사용하는 유효한 식이어야 합니다. 변수에 식이 사용되는 경우 이 식에는 식 문법에서 제공하는 연산자와 함수 및 리터럴을 사용할 수 있지만 식에서 패키지의 데이터 흐름에 있는 열을 참조할 수는 없습니다. 식의 최대 길이는 4000자입니다. 자세한 내용은 Integration Services(SSIS) 식을 참조하십시오.

  • ValueType

    [!참고]

    이 속성 값은 변수 창의 데이터 형식 열에 표시됩니다.

    변수 값의 데이터 형식을 지정합니다.

변수 구성

SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.

SSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용은 변수 창을 참조하십시오.

변수 속성에 대한 자세한 내용과 이러한 변수를 프로그래밍 방식으로 설정하는 방법은 Variable을 참조하십시오.

관련 태스크

패키지에서 사용자 정의 변수의 범위 추가, 삭제, 변경

사용자 정의 변수의 속성 설정

자식 패키지에서 변수 및 매개 변수의 값 사용

쿼리 매개 변수를 데이터 흐름 구성 요소의 변수에 매핑

관련 내용

Integration Services 아이콘(작은 아이콘) Integration Services 관련 최신 정보 얻기

Microsoft의 최신 다운로드, 문서, 예제 및 비디오와 커뮤니티에서 선택된 솔루션을 보려면 MSDN의 Integration Services 페이지를 방문하십시오.


이러한 업데이트에 대한 자동 알림을 받으려면 해당 페이지에서 제공하는 RSS 피드를 구독하십시오.