SQL 실행 태스크는 패키지에서 SQL 문 또는 저장 프로시저를 실행합니다. 이 작업에는 순차적으로 실행되는 단일 SQL 문 또는 여러 SQL 문이 포함될 수 있습니다. SQL 실행 태스크는 다음과 같은 용도로 사용할 수 있습니다.
데이터 삽입을 준비하기 위해 테이블 또는 뷰를 자립니다.
테이블 및 뷰와 같은 데이터베이스 개체를 만들고 변경 및 삭제합니다.
팩트 및 차원 테이블에 데이터를 로드하기 전에 해당 테이블을 다시 만듭니다.
저장 프로시저를 실행합니다. SQL 문이 임시 테이블의 결과를 반환하는 저장 프로시저를 호출하는 경우 WITH RESULT SETS 옵션을 사용하여 결과 집합의 메타데이터를 정의합니다.
쿼리에서 반환된 행 집합을 변수에 저장합니다.
SQL 실행 태스크를 Foreach 루프 및 For 루프 컨테이너와 함께 사용하여 여러 SQL 문을 실행할 수 있습니다. 이러한 컨테이너는 패키지에서 반복 제어 흐름을 구현하며 SQL 실행 태스크를 반복적으로 실행할 수 있습니다. 예를 들어 Foreach 루프 컨테이너를 사용하여 패키지는 폴더의 파일을 열거하고 SQL 실행 태스크를 반복적으로 실행하여 각 파일에 저장된 SQL 문을 실행할 수 있습니다.
데이터 원본에 연결
SQL 실행 태스크는 다양한 유형의 연결 관리자를 사용하여 SQL 문 또는 저장 프로시저를 실행하는 데이터 원본에 연결할 수 있습니다. 작업은 다음 표에 나열된 연결 형식을 사용할 수 있습니다.
| 연결 유형 | 연결 관리자 |
|---|---|
| 뛰어나다 | Excel 연결 관리자 |
| OLE DB | OLE DB 연결 관리자 |
| ODBC (오픈 데이터베이스 연결) | ODBC 연결 관리자 |
| ADO | ADO 연결 관리자 |
| ADO.NET | ADO.NET 연결 관리자 |
| SQLMOBILE | SQL Server Compact Edition 연결 관리자 |
SQL 문 만들기
이 태스크에서 사용하는 SQL 문의 원본은 문을 포함하는 작업 속성, 하나 또는 여러 문이 포함된 파일에 대한 연결 또는 문이 포함된 변수의 이름일 수 있습니다. SQL 문은 DBMS(원본 데이터베이스 관리 시스템)의 방언으로 작성되어야 합니다. 자세한 내용은 Integration Services(SSIS) 쿼리를 참조하세요.
SQL 문이 파일에 저장되는 경우 태스크는 파일 연결 관리자를 사용하여 파일에 연결합니다. 자세한 내용은 File Connection Manager를 참조하세요.
SSIS 디자이너에서 SQL 작업 편집기 실행 대화 상자를 사용하여 SQL 문을 입력하거나 SQL 쿼리를 만들기 위한 그래픽 사용자 인터페이스인 쿼리 작성기를 사용할 수 있습니다. 자세한 내용은 SQL 작업 편집기 실행(일반 페이지) 및 쿼리 작성기를 참조하세요.
비고
SQL 실행 태스크 외부에서 작성된 유효한 SQL 문은 SQL 실행 태스크에 의해 성공적으로 구문 분석되지 않을 수 있습니다.
비고
SQL 실행 태스크는 ParseMode 열거형 값을 사용합니다 RecognizeAll . 자세한 내용은 ManagedBatchParser 네임스페이스를 참조하세요.
일괄 처리로 여러 명세서 보내기
SQL 실행 태스크에 여러 문을 포함하는 경우 여러 문을 그룹화하고 일괄 처리로 실행할 수 있습니다. 일괄 처리의 끝을 알리려면 GO 명령을 사용합니다. 두 GO 명령 간의 모든 SQL 문은 실행할 OLE DB 공급자에 일괄 처리로 전송됩니다. SQL 명령은 GO 명령으로 구분된 여러 일괄 처리를 포함할 수 있습니다.
일괄 처리로 그룹화할 수 있는 SQL 문의 종류에는 제한이 있습니다. 자세한 내용은 보고서 일괄 처리를 참조하세요.
SQL 실행 태스크에서 SQL 문의 일괄 처리를 실행하는 경우 다음 규칙이 일괄 처리에 적용됩니다.
하나의 문만 결과 집합을 반환할 수 있으며 일괄 처리의 첫 번째 문이어야 합니다.
결과 집합에서 결과 바인딩을 사용하는 경우 쿼리는 동일한 수의 열을 반환해야 합니다. 쿼리가 다른 수의 열을 반환하면 작업이 실패합니다. 그러나 작업이 실패하더라도 DELETE 또는 INSERT 쿼리와 같이 실행되는 쿼리는 성공할 수 있습니다.
결과 바인딩에서 열 이름을 사용하는 경우 쿼리는 작업에 사용되는 결과 집합 이름과 이름이 같은 열을 반환해야 합니다. 열이 없으면 작업이 실패합니다.
태스크에서 매개 변수 바인딩을 사용하는 경우 일괄 처리의 모든 쿼리에는 동일한 수와 형식의 매개 변수가 있어야 합니다.
매개 변수가 있는 SQL 명령 실행
SQL 문 및 저장 프로시저는 입력 매개 변수, 출력 매개 변수 및 반환 코드를 자주 사용합니다. SQL 실행 태스크는 , Output및 ReturnValue 매개 변수 형식을 지원합니다Input.
Input 유형은 입력 매개 변수에, Output 유형은 출력 매개 변수에, 그리고 ReturnValue 유형은 반환 코드에 사용합니다.
비고
데이터 공급자가 지원하는 경우에만 SQL 실행 태스크에서 매개 변수를 사용할 수 있습니다.
SQL 실행 태스크에서 매개 변수 및 반환 코드를 사용하는 방법에 대한 자세한 내용은 SQL 실행 태스크의 매개 변수 및 반환 코드를 참조하세요.
결과 집합 형식 지정
SQL 명령의 유형에 따라 결과 집합이 SQL 실행 태스크에 반환되거나 반환되지 않을 수 있습니다. 예를 들어 SELECT 문은 일반적으로 결과 집합을 반환하지만 INSERT 문은 반환하지 않습니다. SELECT 문의 결과 집합에는 행 0개, 행 1개 또는 여러 행이 포함될 수 있습니다. 저장 프로시저는 프로시저의 실행 상태를 나타내는 반환 코드라는 정수 값을 반환할 수도 있습니다. 이 경우 결과 집합은 단일 행으로 구성됩니다.
SQL 실행 태스크의 SQL 명령에서 결과 집합을 검색하는 방법에 대한 자세한 내용은 SQL 실행 태스크의 결과 집합을 참조하세요.
SQL 실행 태스크 문제 해결
SQL 실행 태스크가 외부 데이터 공급자에 대해 수행하는 호출을 기록할 수 있습니다. 이 로깅 기능을 사용하여 SQL 실행 태스크가 실행하는 SQL 명령의 문제를 해결할 수 있습니다. SQL 실행 태스크가 외부 데이터 공급자에 대해 수행하는 호출을 기록하려면 패키지 로깅을 사용하도록 설정하고 패키지 수준에서 진단 이벤트를 선택합니다. 자세한 내용은 패키지 실행을 위한 문제 해결 도구를 참조하세요.
SQL 명령 또는 저장 프로시저가 여러 결과 집합을 반환하는 경우도 있습니다. 이러한 결과 집합에는 쿼리의 SELECT 결과인 행 집합뿐만 아니라 오류 RAISERROR 또는 PRINT 문의 결과로 생성되는 단일 값이 포함됩니다. 첫 번째 결과 집합 이후에 발생하는 결과 집합에서 태스크가 오류를 무시하는지 여부는 사용되는 연결 관리자 유형에 따라 달라집니다.
OLE DB 및 ADO 연결 관리자를 사용하는 경우 작업은 첫 번째 결과 집합 이후에 발생하는 결과 집합을 무시합니다. 따라서 이러한 연결 관리자를 사용하면 오류가 첫 번째 결과 집합의 일부가 아닌 경우 SQL 명령 또는 저장 프로시저에서 반환된 오류를 무시합니다.
ODBC 및 ADO.NET 연결 관리자를 사용하는 경우 작업은 첫 번째 결과 집합 이후에 발생하는 결과 집합을 무시하지 않습니다. 이러한 연결 관리자를 사용하면 첫 번째 결과 집합 이외의 결과 집합에 오류가 포함된 경우 오류가 발생하여 작업이 실패합니다.
사용자 지정 로그 항목
다음 표에서는 SQL 실행 태스크에 대한 사용자 지정 로그 항목에 대해 설명합니다. 자세한 내용은 SSIS(Integration Services) 로깅 및 로깅에 대한 사용자 지정 메시지를 참조하세요.
| 로그 항목 | 설명 |
|---|---|
ExecuteSQLExecutingQuery |
SQL 문의 실행 단계에 대한 정보를 제공합니다. 로그 항목은 태스크가 데이터베이스에 대한 연결을 획득할 때, 태스크가 SQL 문을 준비하기 시작할 때 및 SQL 문의 실행이 완료된 후에 기록됩니다. 준비 단계에 대한 로그 항목에는 태스크에서 사용하는 SQL 문이 포함됩니다. |
SQL 실행 태스크 구성
SQL 실행 태스크는 다음과 같은 방법으로 구성할 수 있습니다.
데이터베이스에 연결하는 데 사용할 연결 관리자 유형을 지정합니다.
SQL 문이 반환하는 결과 집합의 형식을 지정합니다.
SQL 문에 대한 제한 시간을 지정합니다.
SQL 문의 원본을 지정합니다.
태스크가 SQL 문의 준비 단계를 건너뛸지 여부를 나타냅니다.
ADO 연결 형식을 사용하는 경우 SQL 문이 저장 프로시저인지 여부를 나타내야 합니다. 다른 연결 형식의 경우 이 속성은 읽기 전용이며 해당 값은 항상
false입니다.
프로그래밍 방식으로 또는 SSIS 디자이너를 통해 속성을 설정할 수 있습니다.
SSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.
SSIS 디자이너에서 이러한 속성을 설정하는 방법에 대한 자세한 내용은 다음 항목을 클릭합니다.
프로그래밍 방식으로 SQL 실행 태스크 구성
이러한 속성을 프로그래밍 방식으로 설정하는 방법을 보려면 다음 주제를 클릭하세요.