SQL 실행 태스크Execute SQL Task

SQL 실행 태스크는 패키지에서 SQL 문이나 저장 프로시저를 실행합니다.The Execute SQL task runs SQL statements or stored procedures from a package. 이 태스크는 단일 SQL 문 또는 순서대로 실행되는 여러 SQL 문을 포함할 수 있습니다.The task can contain either a single SQL statement or multiple SQL statements that run sequentially. SQL 실행 태스크는 다음 용도로 사용할 수 있습니다.You can use the Execute SQL task for the following purposes:

  • 데이터를 삽입하기 위해 테이블 또는 뷰를 자릅니다.Truncate a table or view in preparation for inserting data.

  • 테이블 및 뷰와 같은 데이터베이스 개체를 만들고 변경 및 삭제합니다.Create, alter, and drop database objects such as tables and views.

  • 팩트 및 차원 테이블에 데이터를 로드하기 전에 해당 테이블을 다시 만듭니다.Re-create fact and dimension tables before loading data into them.

  • 저장 프로시저를 실행합니다.Run stored procedures. SQL 문이 임시 테이블의 결과를 반환하는 저장 프로시저를 호출하는 경우 WITH RESULT SETS 옵션을 사용하여 결과 집합의 메타데이터를 정의합니다.If the SQL statement invokes a stored procedure that returns results from a temporary table, use the WITH RESULT SETS option to define metadata for the result set.

  • 쿼리에서 반환된 행 집합을 변수에 저장합니다.Save the rowset returned from a query into a variable.

    SQL 실행 태스크를 Foreach 루프 및 For 루프 컨테이너와 함께 사용하여 여러 개의 SQL 문을 실행할 수 있습니다.The Execute SQL task can be used in combination with the Foreach Loop and For Loop containers to run multiple SQL statements. 두 컨테이너는 패키지의 반복 제어 흐름을 구현하며 SQL 실행 태스크를 반복해서 실행할 수 있습니다.These containers implement repeating control flows in a package and they can run the Execute SQL task repeatedly. 예를 들어 Foreach 루프 컨테이너를 사용하면 패키지가 폴더에 있는 파일을 열거하고 SQL 실행 태스크를 반복 실행하여 각 파일에 저장된 SQL 문을 실행할 수 있습니다.For example, using the Foreach Loop container, a package can enumerate files in a folder and run an Execute SQL task repeatedly to execute the SQL statement stored in each file.

데이터 원본에 연결Connect to a data source

SQL 실행 태스크는 여러 유형의 연결 관리자를 사용하여 SQL 문이나 저장 프로시저가 실행될 데이터 원본에 연결할 수 있습니다.The Execute SQL task can use different types of connection managers to connect to the data source where it runs the SQL statement or stored procedure. 다음 표에 나열된 연결 형식을 사용할 수 있습니다.The task can use the connection types listed in the following table.

연결 형식Connection type 연결 관리자Connection manager
EXCELEXCEL Excel 연결 관리자Excel Connection Manager
OLE DBOLE DB OLE DB 연결 관리자OLE DB Connection Manager
ODBCODBC ODBC 연결 관리자ODBC Connection Manager
ADOADO ADO 연결 관리자ADO Connection Manager
ADO.NETADO.NET ADO.NET 연결 관리자ADO.NET Connection Manager
SQLMOBILESQLMOBILE SQL Server Compact Edition 연결 관리자SQL Server Compact Edition Connection Manager

SQL 문 만들기Create SQL statements

이 태스크에 사용되는 SQL 문의 원본은 문이 포함된 작업 속성, 하나 이상의 문이 포함된 파일에 대한 연결 또는 문이 포함된 변수 이름일 수 있습니다.The source of the SQL statements used by this task can be a task property that contains a statement, a connection to a file that contains one or multiple statements, or the name of a variable that contains a statement. SQL 문은 원본 DBMS(데이터베이스 관리 시스템) 언어로 기록되어야 합니다.The SQL statements must be written in the dialect of the source database management system (DBMS). 자세한 내용은 Integration Services(SSIS) 쿼리를 참조하세요.For more information, see Integration Services (SSIS) Queries.

SQL 문이 파일에 저장되어 있을 경우 SQL 실행 태스크는 파일 연결 관리자를 사용하여 해당 파일에 연결합니다.If the SQL statements are stored in a file, the task uses a File connection manager to connect to the file. 자세한 내용은 File Connection Manager을 참조하세요.For more information, see File Connection Manager.

SSISSSIS 디자이너에서는 SQL 실행 태스크 편집기 대화 상자를 사용하여 SQL 문을 입력하거나 SQL 쿼리 작성용 그래픽 사용자 인터페이스인 쿼리 작성기를 사용할 수 있습니다.In SSISSSIS Designer, you can use the Execute SQL Task Editor dialog box to type SQL statements, or use Query Builder, a graphical user interface for creating SQL queries.

참고

SQL 실행 태스크 외부에서 작성된 SQL 문은 유효하더라도 SQL 실행 태스크에서 성공적으로 구문 분석되지 않을 수도 있습니다.Valid SQL statements written outside the Execute SQL task may not be parsed successfully by the Execute SQL task.

참고

SQL 실행 태스크는 RecognizeAll ParseMode 열거형 값을 사용합니다.The Execute SQL Task uses the RecognizeAll ParseMode enumeration value. 자세한 내용은 ManagedBatchParser 네임스페이스를 참조하십시오.For more information, see ManagedBatchParser Namespace.

여러 개의 문을 일괄 처리 보내기Send multiple statements in a batch

SQL 실행 태스크에 여러 개의 문이 포함된 경우 문을 그룹화하여 일괄 처리로 실행할 수 있습니다.If you include multiple statements in an Execute SQL task, you can group them and run them as a batch. 일괄 처리의 마지막을 알리려면 GO 명령을 사용합니다.To signal the end of a batch, use the GO command. 두 GO 명령 사이의 모든 SQL 문은 일괄 처리로 실행되도록 OLE DB Provider에 전송됩니다.All the SQL statements between two GO commands are sent in a batch to the OLE DB provider to be run. SQL 명령은 GO 명령으로 구분된 여러 개의 일괄 처리를 포함할 수 있습니다.The SQL command can include multiple batches separated by GO commands.

일괄 처리로 그룹화할 수 있는 SQL 문의 종류에는 제한이 있습니다.There are restrictions on the kinds of SQL statements that you can group in a batch. 자세한 내용은 Batches of Statements을 참조하세요.For more information, see Batches of Statements.

SQL 실행 태스크에서 SQL 문의 일괄 처리를 실행하는 경우 해당 일괄 처리에 다음 규칙이 적용됩니다.If the Execute SQL task runs a batch of SQL statements, the following rules apply to the batch:

  • 일괄 처리의 첫 번째 문 하나만 결과 집합을 반환할 수 있습니다.Only one statement can return a result set and it must be the first statement in the batch.

  • 결과 집합에 결과 바인딩을 사용하는 경우 쿼리에서 동일한 수의 열이 반환되어야 합니다.If the result set uses result bindings, the queries must return the same number of columns. 쿼리에서 반환된 열 수가 서로 다르면 태스크가 실패합니다.If the queries return a different number of columns, the task fails. 그러나 태스크 실패해도 해당 태스크에서 실행하는 DELETE 또는 INSERT와 같은 쿼리는 성공할 수 있습니다.However, even if the task fails, the queries that it runs, such as DELETE or INSERT queries, may succeed.

  • 결과 바인딩에 열 이름을 사용하는 경우 태스크에 사용된 결과 집합 이름과 동일한 이름이 포함된 열이 쿼리에서 반환되어야 합니다.If the result bindings use column names, the query must return columns that have the same names as the result set names that are used in the task. 해당 열이 없으면 태스크가 실패합니다.If the columns are missing, the task fails.

  • 태스크에 매개 변수 바인딩이 사용되는 경우 일괄 처리의 모든 쿼리에 동일한 수와 유형의 매개 변수를 사용해야 합니다.If the task uses parameter binding, all the queries in the batch must have the same number and types of parameters.

매개 변수가 있는 SQL 명령 실행Run parameterized SQL commands

SQL 문과 저장 프로시저는 일반적으로 입력 매개 변수, 출력 매개 변수 및 반환 코드를 사용합니다.SQL statements and stored procedures frequently use input parameters, output parameters, and return codes. SQL 실행 태스크는 Input, OutputReturnValue 매개 변수 유형을 지원합니다.The Execute SQL task supports the Input, Output, and ReturnValue parameter types. 입력 매개 변수에는 Input 유형, 출력 매개 변수에는 Output 유형, 반환 코드에는 ReturnValue 유형을 사용합니다.You use the Input type for input parameters, Output for output parameters, and ReturnValue for return codes.

참고

데이터 공급자가 지원하는 경우에만 SQL 실행 태스크에 매개 변수를 사용할 수 있습니다.You can use parameters in an Execute SQL task only if the data provider supports them.

결과 집합 유형 지정Specify a result set type

SQL 명령 유형에 따라 SQL 실행 태스크에서 결과 집합이 반환될 수도 있고 반환되지 않을 수도 있습니다.Depending on the type of SQL command, a result set may or may not be returned to the Execute SQL task. 예를 들어 SELECT 문은 일반적으로 결과 집합을 반환하지만 INSERT 문은 결과 집합을 반환하지 않습니다.For example, a SELECT statement typically returns a result set, but an INSERT statement does not. SELECT 문의 결과 집합은 행을 포함하지 않을 수도 있고, 하나 이상의 행을 포함할 수 있습니다.The result set from a SELECT statement can contain zero rows, one row, or many rows. 저장 프로시저도 반환 코드라고 하는 정수 값을 반환하여 프로시저의 실행 상태를 표시할 수 있습니다.Stored procedures can also return an integer value, called a return code, that indicates the execution status of the procedure. 이 경우에는 결과 집합이 단일 행으로 구성됩니다.In that case, the result set consists of a single row.

SQL 실행 태스크 구성Configure the Execute SQL task

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

  • 데이터베이스에 연결할 때 사용할 연결 관리자 유형을 지정합니다.Specify the type of connection manager to use to connect to a database.

  • SQL 문에서 반환되는 결과 집합 유형을 지정합니다.Specify the type of result set that the SQL statement returns.

  • SQL 문의 제한 시간을 지정합니다.Specify a time-out for the SQL statements.

  • SQL 문의 원본을 지정합니다.Specify the source of the SQL statement.

  • 태스크에서 SQL 문의 준비 단계를 건너뛸지를 나타냅니다.Indicate whether the task skips the prepare phase for the SQL statement.

  • ADO 연결 형식을 사용하는 경우 SQL 문이 저장 프로시저인지 여부를 나타내야 합니다.If you use the ADO connection type, you must indicate whether the SQL statement is a stored procedure. 다른 연결 형식에서 이 속성은 읽기 전용이며 항상 false값을 갖습니다.For other connection types, this property is read-only and its value is always false.

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

일반 페이지-SQL 실행 태스크 편집기General Page - Execute SQL Task Editor

SQL 실행 태스크 편집기 대화 상자의 일반 페이지를 사용하여 SQL 실행 태스크를 구성하고 해당 태스크에서 실행할 SQL 문을 제공할 수 있습니다.Use the General page of the Execute SQL Task Editor dialog box to configure the Execute SQL task and provide the SQL statement that the task runs.

Transact-SQL 쿼리 언어에 대한 자세한 내용은 Transact-SQL 참조(데이터베이스 엔진)를 참조하세요.To learn more about the Transact-SQL query language, see Transact-SQL Reference (Database Engine).

정적 옵션Static Options

이름Name
워크플로의 SQL 실행 태스크에 사용할 고유 이름을 제공합니다.Provide a unique name for the Execute SQL task in the workflow. 제공한 이름은 SSISSSIS 디자이너에 표시됩니다.The name that is provided will be displayed within SSISSSIS Designer.

DescriptionDescription
SQL 실행 태스크를 설명합니다.Describe the Execute SQL task. 해당 태스크의 용도를 설명하여 패키지를 이해하기 쉽고 유지 관리하기 편하도록 만드는 것이 가장 좋습니다.As a best practice, to make packages self-documenting and easier to maintain, describe the task in terms of its purpose.

제한 시간TimeOut
태스크 제한 시간이 초과될 때까지 걸리는 최대 시간(초)을 지정합니다.Specify the maximum number of seconds the task will run before timing out. 값 0은 제한 시간이 없음을 의미합니다.A value of 0 indicates an infinite time. 기본값은 0입니다.The default is 0.

참고

저장 프로시저에서 연결 설정 및 트랜잭션 완료 시간으로 TimeOut에서 지정한 시간(초)보다 큰 수를 지정하여 대기 기능을 에뮬레이트할 경우 저장 프로시저의 제한 시간이 없습니다.Stored procedures do not time out if they emulate sleep functionality by providing time for connections to be made and transactions to complete that is greater than the number of seconds specified by TimeOut. 그러나 쿼리를 실행하는 저장 프로시저는 항상 TimeOut에서 지정한 시간의 제한을 받습니다.However, stored procedures that execute queries are always subject to the time restriction specified by TimeOut.

CodePageCodePage
변수의 유니코드 값을 변환할 때 사용할 코드 페이지를 지정합니다.Specify the code page to use when translating Unicode values in variables. 기본값은 로컬 컴퓨터의 코드 페이지입니다.The default value is the code page of the local computer.

참고

SQL 실행 태스크에서 ADO 또는 ODBC 연결 관리자를 사용할 때는 CodePage 속성을 사용할 수 없습니다.When the Execute SQL task uses an ADO or ODBC connection manager, the CodePage property is not available. 솔루션에 코드 페이지의 사용이 필요한 경우에는 SQL 실행 태스크에서 OLE DB 또는 ADO.NET 연결 관리자를 사용하십시오.If your solution requires the use of a code page, use an OLE DB or an ADO.NET connection manager with the Execute SQL task.

TypeConversionModeTypeConversionMode
이 속성을 Allowed로 설정하면 SQL 실행 태스크는 출력 매개 변수와 쿼리 결과를 결과가 할당되는 변수의 데이터 형식으로 변환합니다.When you set this property to Allowed, the Execute SQL Task will attempt to convert output parameter and query results to the data type of the variable the results are assigned to. 이는 단일 행 결과 집합 유형에 적용됩니다.This applies to the Single row result set type.

결과 집합ResultSet
실행 중인 SQL 문에서 예상하는 결과 유형을 지정합니다.Specify the result type expected by the SQL statement being run. 단일 행, 전체 결과 집합, XML또는 없음중에서 선택합니다.Choose among Single row, Full result set, XML, or None.

ConnectionTypeConnectionType
데이터 원본에 연결할 때 사용할 연결 관리자 유형을 선택합니다.Choose the type of connection manager to use to connect to the data source. 사용 가능한 연결 형식에는 OLE DB, ODBC, ADO, ADO.NETSQLMOBILE이 있습니다.Available connection types include OLE DB, ODBC, ADO, ADO.NET and SQLMOBILE.

관련 항목: OLE DB 연결 관리자, ODBC 연결 관리자, ADO 연결 관리자, ADO.NET 연결 관리자, SQL Server Compact Edition 연결 관리자Related Topics: OLE DB Connection Manager, ODBC Connection Manager, ADO Connection Manager, ADO.NET Connection Manager, SQL Server Compact Edition Connection Manager

연결Connection
정의된 연결 관리자 목록에서 연결을 선택합니다.Choose the connection from a list of defined connection managers. 새 연결을 만들려면 선택 < 새 연결... >.To create a new connection, select <New connection...>.

SQLSourceTypeSQLSourceType
태스크에서 실행하는 SQL 문의 원본 유형을 선택합니다.Select the source type of the SQL statement that the task runs.

SQL 실행 태스크에서 사용하는 연결 관리자 유형에 따라 매개 변수가 있는 SQL 문에서 특정 매개 변수 표식을 사용해야 합니다.Depending on the connection manager type that Execute SQL task uses, you must use specific parameter markers in parameterized SQL statements.

이 속성의 옵션은 다음 표에 나열되어 있습니다.This property has the options listed in the following table.

ValueValue DescriptionDescription
직접 입력Direct input 원본을 Transact-SQL 문으로 설정합니다.Set the source to a Transact-SQL statement. 이 값을 선택하면 동적 옵션 SQLStatement가 표시됩니다.Selecting this value displays the dynamic option, SQLStatement.
파일 연결File connection Transact-SQL 문이 포함된 파일을 선택합니다.Select a file that contains a Transact-SQL statement. 이 옵션을 설정하면 동적 옵션 FileConnection이 표시됩니다.Setting this option displays the dynamic option, FileConnection.
변수Variable 원본을 Transact-SQL 문을 정의하는 변수로 설정합니다.Set the source to a variable that defines the Transact-SQL statement. 이 값을 선택하면 동적 옵션 SourceVariable이 표시됩니다.Selecting this value displays the dynamic option, SourceVariable.

QueryIsStoredProcedureQueryIsStoredProcedure
실행하도록 지정한 SQL 문이 저장 프로시저인지 여부를 표시합니다.Indicates whether the specified SQL statement to be run is a stored procedure. 이 속성은 태스크에서 ADO 연결 관리자를 사용하는 경우에만 읽기/쓰기가 가능합니다.This property is read/write only if the task uses the ADO connection manager. 그렇지 않은 경우 읽기 전용이고 값은 false입니다.Otherwise the property is read-only and its value is false.

BypassPrepareBypassPrepare
SQL 문의 준비 여부를 나타냅니다.Indicate whether the SQL statement is prepared. true 이면 준비를 건너뛰고 false 이면 SQL 문을 실행하기 전에 SQL 문을 준비합니다.true skips preparation; false prepares the SQL statement before running it. 이 옵션은 준비를 지원하는 OLE DB 연결에만 사용할 수 있습니다.This option is available only with OLE DB connections that support preparation.

관련 항목: 준비된 실행Related Topics: Prepared Execution

찾아보기Browse
열기 대화 상자를 사용하여 SQL 문이 포함된 파일을 찾습니다.Locate a file that contains a SQL statement by using the Open dialog box. 해당 내용을 SQLStatement 속성에 SQL 문으로 복사할 파일을 선택합니다.Select a file to copy the contents of the file as a SQL statement into the SQLStatement property.

쿼리 작성Build Query
쿼리를 만들 때 사용하는 그래픽 도구인 쿼리 작성기 대화 상자를 사용하여 SQL 문을 만듭니다.Create an SQL statement using the Query Builder dialog box, a graphical tool used to create queries. 이 옵션은 SQLSourceType 옵션을 직접 입력으로 설정한 경우에만 사용할 수 있습니다.This option is available when the SQLSourceType option is set to Direct input.

쿼리 구문 분석Parse Query
SQL 문의 구문 유효성을 검사합니다.Validate the syntax of the SQL statement.

SQLSourceType 동적 옵션SQLSourceType Dynamic Options

SQLSourceType = 직접 입력SQLSourceType = Direct input

SQLStatementSQLStatement
실행할 SQL 문을 옵션 상자에 입력하거나, 찾아보기 단추(…)를 클릭하여 SQL 쿼리 입력 대화 상자에 SQL 문을 입력하거나, 쿼리 작성 을 클릭하고 쿼리 작성기 대화 상자를 사용하여 SQL 문을 작성합니다.Type the SQL statement to execute in the option box, or click the browse button (…) to type the SQL statement in the Enter SQL Query dialog box, or click Build Query to compose the statement using the Query Builder dialog box.

관련 항목: 쿼리 작성기Related Topics: Query Builder

SQLSourceType = 파일 연결SQLSourceType = File connection

FileConnectionFileConnection
기존 파일 연결 관리자를 선택 하거나 클릭 < 새 연결... > 새 연결 관리자를 만듭니다.Select an existing File connection manager, or click <New connection...> to create a new connection manager.

관련 항목: File Connection Manager, File Connection Manager EditorRelated Topics: File Connection Manager, File Connection Manager Editor

SQLSourceType = 변수SQLSourceType = Variable

SourceVariableSourceVariable
기존 변수를 선택 하거나 클릭 < 새 변수... > 새 변수를 만듭니다.Select an existing variable, or click <New variable...> to create a new variable.

관련 항목: Integration Services(SSIS) 변수, 변수 추가Related Topics: Integration Services (SSIS) Variables, Add Variable

매개 변수 매핑 페이지-SQL 실행 태스크 편집기Parameter Mapping Page - Execute SQL Task Editor

SQL 실행 태스크 편집기 대화 상자의 매개 변수 매핑 페이지를 사용하여 변수를 SQL 문의 매개 변수에 매핑할 수 있습니다.Use the Parameter Mapping page of the Execute SQL Task Editor dialog box to map variables to parameters in the SQL statement.

옵션Options

변수 이름Variable Name
클릭 하 여 매개 변수 매핑을 추가한 다음 추가를 목록에서 시스템 또는 사용자 정의 변수를 선택 하거나 클릭 < 새 변수... >를 사용 하 여 새 변수를 추가 하는 변수 추가 대화 상자.After you have added a parameter mapping by clicking Add, select a system or user-defined variable from the list or click <New variable...> to add a new variable by using the Add Variable dialog box.

관련 항목: Integration Services(SSIS) 변수Related Topics: Integration Services (SSIS) Variables

방향Direction
매개 변수의 방향을 선택합니다.Select the direction of the parameter. 각 변수를 입력 매개 변수, 출력 매개 변수 또는 반환 코드에 매핑합니다.Map each variable to an input parameter, output parameter, or a return code.

데이터 형식Data Type
매개 변수의 데이터 형식을 선택합니다.Select the data type of the parameter. 사용 가능한 데이터 형식의 목록은 태스크에서 사용하는 연결 관리자에서 선택한 공급자에만 적용됩니다.The list of available data types is specific to the provider selected in the connection manager used by the task.

매개 변수 이름Parameter Name
매개 변수 이름을 입력합니다.Provide a parameter name.

태스크에서 사용하는 연결 관리자 유형에 따라 숫자 또는 매개 변수 이름을 사용해야 합니다.Depending on the connection manager type that the task uses, you must use numbers or parameter names. 일부 연결 관리자 유형의 사용 하려면 매개 변수 이름의 첫 번째 문자는 @ 기호와 같은 특정 이름을 @Param1, 또는 매개 변수 이름으로 열 이름입니다.Some connection manager types require that the first character of the parameter name is the @ sign , specific names like @Param1, or column names as parameter names.

매개 변수 크기 늘리기Parameter Size
문자열 및 이진 필드와 같은 가변 길이를 가지는 매개 변수의 크기를 제공합니다.Provide the size of parameters that have variable length, such as strings and binary fields.

이 설정을 사용하면 공급자에서 가변 길이 매개 변수 값에 대해 충분한 공간을 할당합니다.This setting ensures that the provider allocates sufficient space for variable-length parameter values.

추가Add
매개 변수 매핑을 추가하려면 클릭합니다.Click to add a parameter mapping.

제거Remove
목록에서 매개 변수 매핑을 선택한 다음 제거를 클릭합니다.Select a parameter mapping in the list and then click Remove.

결과 집합 페이지-SQL 실행 태스크 편집기Result Set Page - Execute SQL Task Editor

SQL 실행 태스크 편집기 대화 상자의 결과 집합 페이지를 사용하여 SQL 문의 결과를 새 변수 또는 기존 변수로 매핑할 수 있습니다.Use the Result Set page of the Execute SQL Task Editor dialog to map the result of the SQL statement to new or existing variables. 일반 페이지의 ResultSet없음으로 설정한 경우에는 이 대화 상자의 옵션을 사용할 수 없습니다.The options in this dialog box are disabled if ResultSet on the General page is set to None.

옵션Options

결과 이름Result Name
추가를 클릭하여 결과 집합 매핑 집합을 추가한 다음 결과를 설명하는 이름을 제공합니다.After you have added a result set mapping set by clicking Add, provide a name for the result. 결과 집합 유형에 따라 특정 결과 이름을 사용해야 합니다.Depending on the result set type, you must use specific result names.

결과 집합 유형이 단일 행이면 쿼리에서 반환한 열 이름이나 쿼리에서 반환한 열의 열 목록에서 열 위치를 나타내는 숫자 중 하나를 사용할 수 있습니다.If the result set type is Single row, you can use either the name of a column returned by the query or the number that represents the position of a column in the column list of a column returned by the query.

결과 집합 유형이 전체 결과 집합 이나 XML이면 결과 집합 이름으로 0을 사용해야 합니다.If the result set type is Full result set or XML, you must use 0 as the result set name.

변수 이름Variable Name
결과 집합을 변수에 변수 또는 클릭을 선택 하 여 < 새 변수... >를 사용 하 여 새 변수를 추가 하는 변수 추가 대화 상자.Map the result set to a variable by selecting a variable or click <New variable...> to add a new variable by using the Add Variable dialog box.

추가Add
결과 집합 매핑을 추가하려면 클릭합니다.Click to add a result set mapping.

제거Remove
목록에서 결과 집합 매핑을 선택한 다음 제거를 클릭합니다.Select a result set mapping in the list and then click Remove.

매개 변수는 SQL 실행 태스크Parameters in the Execute SQL Task

SQL 문과 저장 프로시저에서는 일반적으로 input 매개 변수, output 매개 변수 및 반환 코드를 사용합니다.SQL statements and stored procedures frequently use input parameters, output parameters, and return codes. Integration ServicesIntegration Services에서 SQL 실행 태스크는 Input, OutputReturnValue 매개 변수 유형을 지원합니다.In Integration ServicesIntegration Services, the Execute SQL task supports the Input, Output, and ReturnValue parameter types. 입력 매개 변수에는 Input 유형, 출력 매개 변수에는 Output 유형, 반환 코드에는 ReturnValue 유형을 사용합니다.You use the Input type for input parameters, Output for output parameters, and ReturnValue for return codes.

참고

데이터 공급자가 지원하는 경우에만 SQL 실행 태스크에 매개 변수를 사용할 수 있습니다.You can use parameters in an Execute SQL task only if the data provider supports them.

쿼리와 저장 프로시저를 포함하여 SQL 명령의 매개 변수는 SQL 실행 태스크의 범위, 부모 컨테이너 또는 패키지 범위 내에서 생성된 사용자 정의 변수에 매핑됩니다.Parameters in SQL commands, including queries and stored procedures, are mapped to user-defined variables that are created within the scope of the Execute SQL task, a parent container, or within the scope of the package. 변수 값은 디자인 타임에 설정하거나 런타임에 동적으로 채울 수 있습니다.The values of variables can be set at design time or populated dynamically at run time. 매개 변수를 시스템 변수에 매핑할 수도 있습니다.You can also map parameters to system variables. 자세한 내용은 Integration Services(SSIS) 변수시스템 변수를 참조하세요.For more information, see Integration Services (SSIS) Variables and System Variables.

그러나 SQL 실행 태스크에서 매개 변수 및 반환 코드를 사용하려면 태스크에서 지원되는 매개 변수 유형 및 이러한 매개 변수가 매핑되는 방식을 이해하는 것만으로는 충분하지 않습니다.However, working with parameters and return codes in an Execute SQL task is more than just knowing what parameter types the task supports and how these parameters will be mapped. SQL 실행 태스크에서 매개 변수 및 반환 코드를 제대로 사용하려면 추가적인 사용 요구 사항과 지침을 따라야 합니다.There are additional usage requirements and guidelines to successfully use parameters and return codes in the Execute SQL task. 이 항목의 나머지 부분에서는 이러한 사용 요구 사항과 지침을 설명합니다.The remainder of this topic covers these usage requirements and guidelines:

매개 변수 이름 및 표식 Parameter names and markers

SQL 실행 태스크가 사용하는 연결 형식에 따라 SQL 명령 구문이 사용하는 매개 변수 표식이 달라집니다.Depending on the connection type that the Execute SQL task uses, the syntax of the SQL command uses different parameter markers. 예를 들어는 ADO.NETADO.NET 연결 관리자 유형을 사용 하려면 SQL 명령 매개 변수 표식을 사용 하 여 형식에서 @varParameter 하지만 OLE DB 연결 유형에 물음표 (?) 매개 변수 표식입니다.For example, the ADO.NETADO.NET connection manager type requires that the SQL command uses a parameter marker in the format @varParameter, whereas OLE DB connection type requires the question mark (?) parameter marker.

변수와 매개 변수 간 매핑에 매개 변수 이름으로 사용할 수 있는 이름도 연결 관리자 유형에 따라 달라집니다.The names that you can use as parameter names in the mappings between variables and parameters also vary by connection manager type. 예를 들어 ADO.NETADO.NET 연결 관리자 유형에는 @ 접두사가 있는 사용자 정의 이름을 사용하지만 OLE DB 연결 관리자 유형에는 0부터 시작하는 서수의 숫자 값을 매개 변수 이름으로 사용해야 합니다.For example, the ADO.NETADO.NET connection manager type uses a user-defined name with a @ prefix, whereas the OLE DB connection manager type requires that you use the numeric value of a 0-based ordinal as the parameter name.

다음 표에서는 SQL 실행 태스크가 사용할 수 있는 연결 관리자 유형에 대한 SQL 명령 요구 사항을 요약합니다.The following table summarizes the requirements for SQL commands for the connection manager types that the Execute SQL task can use.

연결 형식Connection type 매개 변수 표식Parameter marker 매개 변수 이름Parameter name SQL 명령 예Example SQL command
ADOADO ?? Param1, Param2, …Param1, Param2, … SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?
ADO.NETADO.NET @<매개 변수 이름 >@<parameter name> @<매개 변수 이름 >@<parameter name> 선택 Person.Contact에서 제목 FirstName, LastName, 여기서 ContactID =@parmContactID</span><span class="sxs-lookup">SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = @parmContactID</span></span>
ODBCODBC ?? 1, 2, 3, …1, 2, 3, … SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?
EXCEL 및 OLE DBEXCEL and OLE DB ?? 0, 1, 2, 3, …0, 1, 2, 3, … SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?

ADO.NET 및 ADO 연결 관리자 매개 변수를 사용 합니다.Use parameters with ADO.NET and ADO Connection Managers

ADO.NETADO.NET및 ADO 연결 관리자 매개 변수를 사용 하는 SQL 명령에 대 한 특정 요구 사항이 있습니다. and ADO connection managers have specific requirements for SQL commands that use parameters:

  • ADO.NETADO.NET연결 관리자 SQL 명령에 매개 변수 이름을 매개 변수 표식으로 사용 해야 합니다. connection managers require that the SQL command use parameter names as parameter markers. 즉, 변수를 매개 변수에 직접 매핑할 수 있습니다.This means that variables can be mapped directly to parameters. 예를 들어 @varName 변수는 @parName 이라는 매개 변수에 매핑되고 @parName매개 변수에 값을 제공합니다.For example, the variable @varName is mapped to the parameter named @parName and provides a value to the parameter @parName.

  • ADO 연결 관리자를 사용하려면 SQL 명령에 물음표(?)를 매개 변수 표식으로 사용해야 합니다.ADO connection managers require that the SQL command use question marks (?) as parameter markers. 그러나 정수 값을 제외한 모든 사용자 정의 이름을 매개 변수 이름으로 사용할 수 있습니다.However, you can use any user-defined name, except for integer values, as parameter names.

    매개 변수에 값을 제공하기 위해 변수는 매개 변수 이름에 매핑됩니다.To provide values to parameters, variables are mapped to parameter names. 그런 다음 SQL 실행 태스크에서 매개 변수 목록에 있는 매개 변수 이름의 서수 값을 사용하여 변수의 값을 매개 변수에 로드합니다.Then, the Execute SQL task uses the ordinal value of the parameter name in the parameter list to load values from variables to parameters.

EXCEL, ODBC, OLE DB 연결 관리자와 매개 변수를 사용 합니다.Use parameters with EXCEL, ODBC, and OLE DB Connection Managers

EXCEL, ODBC 및 OLE DB 연결 관리자를 사용하려면 SQL 명령에 물음표(?)를 매개 변수 표식으로 사용하고 0 또는 1부터 시작하는 숫자 값을 매개 변수 이름으로 사용해야 합니다.EXCEL, ODBC, and OLE DB connection managers require that the SQL command use question marks (?) as parameter markers and 0-based or 1-based numeric values as parameter names. SQL 실행 태스크에서 ODBC 연결 관리자를 사용하면 쿼리의 첫 번째 매개 변수에 매핑되는 매개 변수 이름이 1이고, 그렇지 않으면 이 매개 변수 이름이 0입니다.If the Execute SQL task uses the ODBC connection manager, the parameter name that maps to the first parameter in the query is named 1; otherwise, the parameter is named 0. 후속 매개 변수의 경우에도 매개 변수 이름의 숫자 값이 SQL 명령에서 매개 변수 이름이 매핑되는 매개 변수를 나타냅니다.For subsequent parameters, the numeric value of the parameter name indicates the parameter in the SQL command that the parameter name maps to. 예를 들어 이름이 3인 매개 변수는 세 번째 매개 변수에 매핑되며 SQL 명령에서 세 번째 물음표(?)로 표현됩니다.For example, the parameter named 3 maps to the third parameter, which is represented by the third question mark (?) in the SQL command.

매개 변수에 값을 제공하기 위해 변수가 매개 변수 이름에 매핑되고 SQL 실행 태스크에서 매개 변수 이름의 서수 값을 사용하여 변수 값을 매개 변수에 로드합니다.To provide values to parameters, variables are mapped to parameter names and the Execute SQL task uses the ordinal value of the parameter name to load values from variables to parameters.

연결 관리자에서 사용하는 공급자에 따라 일부 OLE DB 데이터 형식이 지원되지 않을 수 있습니다.Depending on the provider that the connection manager uses, some OLE DB data types may not be supported. 예를 들어 Excel 드라이버는 제한된 데이터 형식 집합만 인식합니다.For example, the Excel driver recognizes only a limited set of data types. Excel 드라이버를 사용하는 Jet 공급자의 동작에 대한 자세한 내용은 Excel Source을 참조하십시오.For more information about the behavior of the Jet provider with the Excel driver, see Excel Source.

매개 변수를 사용 하 여 OLE DB 연결 관리자 사용Use parameters with OLE DB Connection Managers

SQL 실행 태스크에서 OLE DB 연결 관리자를 사용할 때는 태스크의 BypassPrepare 속성을 사용할 수 있습니다.When the Execute SQL task uses the OLE DB connection manager, the BypassPrepare property of the task is available. SQL 실행 태스크에서 매개 변수가 있는 SQL 문을 사용하는 경우 이 속성을 true 로 설정해야 합니다.You should set this property to true if the Execute SQL task uses SQL statements with parameters.

OLE DB 연결 관리자를 사용하는 경우 SQL 실행 태스크에서 OLE DB Provider를 통해 매개 변수 정보를 파생할 수 없으므로 매개 변수가 있는 하위 쿼리를 사용할 수 없습니다.When you use an OLE DB connection manager, you cannot use parameterized subqueries because the Execute SQL Task cannot derive parameter information through the OLE DB provider. 그러나 식을 사용하여 매개 변수 값을 쿼리 문자열로 연결하고 태스크의 SqlStatementSource 속성을 설정할 수 있습니다.However, you can use an expression to concatenate the parameter values into the query string and to set the SqlStatementSource property of the task.

매개 변수를 사용 하 여 날짜 및 시간 데이터 형식 Use parameters with date and time data types

날짜 및 시간 매개 변수를 사용 하 여 ADO.NET 및 ADO 연결 관리자Use date and time parameters with ADO.NET and ADO Connection Managers

SQL ServerSQL Server 형식인 timedatetimeoffset 데이터를 읽을 때는 ADO.NETADO.NET 또는 ADO 연결 관리자를 사용하는 SQL 실행 태스크에 다음과 같은 요구 사항이 추가로 적용됩니다.When reading data of the SQL ServerSQL Server types, time and datetimeoffset, an Execute SQL task that uses either an ADO.NETADO.NET or ADO connection manager has the following additional requirements:

  • time 데이터의 경우 ADO.NETADO.NET 연결 관리자를 사용하려면 매개 변수 유형이 Input 또는 Output이고 데이터 형식이 string인 매개 변수에 이 데이터를 저장해야 합니다.For time data, an ADO.NETADO.NET connection manager requires this data to be stored in a parameter whose parameter type is Input or Output, and whose data type is string.

  • datetimeoffset 데이터의 경우 ADO.NETADO.NET 연결 관리자를 사용하려면 다음 매개 변수 중 하나에 이 데이터를 저장해야 합니다.For datetimeoffset data, an ADO.NETADO.NET connection manager requires this data to be stored in one of the following parameters:

    • 매개 변수 유형이 Input 이고 데이터 형식이 string인 매개 변수A parameter whose parameter type is Input and whose data type is string.

    • 매개 변수 유형이 Output 또는 ReturnValue이고 데이터 형식이 datetimeoffset, string또는 datetime2인 매개 변수.A parameter whose parameter type is Output or ReturnValue, and whose data type is datetimeoffset, string, or datetime2. 데이터 형식이 string 또는 datetime2인 매개 변수를 선택하면 Integration ServicesIntegration Services에서 데이터를 string이나 datetime2로 변환합니다.If you select a parameter whose data type is either string or datetime2, Integration ServicesIntegration Services converts the data to either string or datetime2.

  • ADO 연결 관리자를 사용하려면 매개 변수 유형이 time 또는 datetimeoffset 이고 데이터 형식이 Input 인 매개 변수에 Output또는 adVarWchar데이터를 저장해야 합니다.An ADO connection manager requires that either time or datetimeoffset data be stored in a parameter whose parameter type is Input or Output, and whose data type is adVarWchar.

    SQL ServerSQL Server 데이터 형식 및 Integration ServicesIntegration Services 데이터 형식에 매핑하는 방법에 대한 자세한 내용은 데이터 형식(Transact-SQL)Integration Services 데이터 형식을 참조하세요.For more information about SQL ServerSQL Server data types and how they map to Integration ServicesIntegration Services data types, see Data Types (Transact-SQL) and Integration Services Data Types.

날짜 및 시간 매개 변수를 사용 하 여 OLE DB 연결 관리자 사용Use date and time parameters with OLE DB Connection Managers

OLE DB 연결 관리자를 사용하는 경우 SQL 실행 태스크에서 SQL ServerSQL Server 데이터 형식 date, time, datetime, datetime2datetimeoffset 형식의 데이터를 저장할 때 특수한 요구 사항이 적용됩니다.When using an OLE DB connection manager, an Execute SQL task has specific storage requirements for data of the SQL ServerSQL Server data types, date, time, datetime, datetime2, and datetimeoffset. 이러한 데이터를 다음과 같은 매개 변수 유형 중 하나에 저장해야 합니다.You must store this data in one of the following parameter types:

  • NVARCHAR 데이터 형식의 입력 매개 변수An input parameter of the NVARCHAR data type.

  • 다음 표에 나열된 적절한 데이터 형식의 출력 매개 변수An output parameter of with the appropriate data type, as listed in the following table.

    Output 매개 변수 유형Output parameter type 날짜 데이터 형식Date data type
    DBDATEDBDATE datedate
    DBTIME2DBTIME2 timetime
    DBTIMESTAMPDBTIMESTAMP datetime, datetime2datetime, datetime2
    DBTIMESTAMPOFFSETDBTIMESTAMPOFFSET datetimeoffsetdatetimeoffset

    적절한 입력 또는 출력 매개 변수에 데이터가 저장되지 않으면 패키지가 실패합니다.If the data is not stored in the appropriate input or output parameter, the package fails.

날짜 및 시간 매개 변수를 사용 하 여 ODBC 연결 관리자 사용Use date and time parameters with ODBC Connection Managers

ODBC 연결 관리자를 사용하는 경우 SQL 실행 태스크에서 SQL ServerSQL Server 데이터 형식 date, time, datetime, datetime2 또는 datetimeoffset 중 한 형식의 데이터를 저장할 때 특수한 요구 사항이 적용됩니다.When using an ODBC connection manager, an Execute SQL task has specific storage requirements for data with one of the SQL ServerSQL Server data types, date, time, datetime, datetime2, or datetimeoffset. 이러한 데이터를 다음과 같은 매개 변수 유형 중 하나에 저장해야 합니다.You must store this data in one of the following parameter types:

  • SQL_WVARCHAR 데이터 형식의 input 매개 변수An input parameter of the SQL_WVARCHAR data type

  • 다음 표에 나와 있는 적절한 데이터 형식의 output 매개 변수An output parameter with the appropriate data type, as listed in the following table.

    Output 매개 변수 유형Output parameter type 날짜 데이터 형식Date data type
    SQL_DATESQL_DATE datedate
    SQL_SS_TIME2SQL_SS_TIME2 timetime
    SQL_TYPE_TIMESTAMPSQL_TYPE_TIMESTAMP

    -또는--or-

    SQL_TIMESTAMPSQL_TIMESTAMP
    datetime, datetime2datetime, datetime2
    SQL_SS_TIMESTAMPOFFSETSQL_SS_TIMESTAMPOFFSET datetimeoffsetdatetimeoffset

    적절한 입력 또는 출력 매개 변수에 데이터가 저장되지 않으면 패키지가 실패합니다.If the data is not stored in the appropriate input or output parameter, the package fails.

WHERE 절에 매개 변수를 사용 합니다. Use parameters in WHERE clauses

원본 테이블의 각 행이 SQL 명령에 적합하도록 만들기 위해 만족시켜야 할 조건을 정의하는 필터를 지정하기 위해 SELECT, INSERT, UPDATE 및 DELETE 명령에 WHERE 절을 포함하는 경우가 많습니다.SELECT, INSERT, UPDATE, and DELETE commands frequently include WHERE clauses to specify filters that define the conditions each row in the source tables must meet to qualify for an SQL command. 매개 변수는 WHERE 절에 필터 값을 제공합니다.Parameters provide the filter values in the WHERE clauses.

매개 변수 표식을 사용하여 매개 변수 값을 동적으로 제공할 수 있습니다.You can use parameter markers to dynamically provide parameter values. SQL 문에 사용할 수 있는 매개 변수 표식 및 매개 변수 이름에 대한 규칙은 SQL 실행이 사용하는 연결 관리자 유형에 따라 달라집니다.The rules for which parameter markers and parameter names can be used in the SQL statement depend on the type of connection manager that the Execute SQL uses.

다음 표에서는 연결 관리자 유형별 SELECT 명령의 예를 나열합니다.The following table lists examples of the SELECT command by connection manager type. INSERT, UPDATE 및 DELETE 문도 이와 비슷합니다.The INSERT, UPDATE, and DELETE statements are similar. 이 예에서는 SELECT를 사용하여 Product AdventureWorks2012AdventureWorks2012 테이블에서 ProductID 가 두 매개 변수로 지정된 값보다 크고 작은 제품을 반환합니다.The examples use SELECT to return products from the Product table in AdventureWorks2012AdventureWorks2012 that have a ProductID greater than and less than the values specified by two parameters.

연결 형식Connection type SELECT 구문SELECT syntax
EXCEL, ODBC 및 OLEDBEXCEL, ODBC, and OLEDB SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
ADOADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
ADO.NETADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND ProductID < @parmMaxProductID

이 예에서는 다음과 같은 이름의 매개 변수가 필요합니다.The examples would require parameters that have the following names:

  • EXCEL 및 OLED DB 연결 관리자는 매개 변수 이름으로 0과 1을 사용하고The EXCEL and OLED DB connection managers use the parameter names 0 and 1. ODBC 연결 형식은 1과 2를 사용합니다.The ODBC connection type uses 1 and 2.

  • ADO 연결 형식에서는 Param1 및 Param2와 같은 임의의 두 매개 변수 이름을 사용할 수 있지만 이러한 매개 변수는 매개 변수 목록에서의 서수 위치에 따라 매핑되어야 합니다.The ADO connection type could use any two parameter names, such as Param1 and Param2, but the parameters must be mapped by their ordinal position in the parameter list.

  • ADO.NETADO.NET 연결 유형 매개 변수 이름을 사용 하 여 @parmMinProductID 및 @parmMaxProductID합니다.</span><span class="sxs-lookup">The ADO.NETADO.NET connection type uses the parameter names @parmMinProductID and @parmMaxProductID.</span></span>

저장된 프로시저와 함께 매개 변수를 사용 합니다. Use parameters with stored procedures

저장 프로시저를 실행하는 SQL 명령도 매개 변수 매핑을 사용할 수 있습니다.SQL commands that run stored procedures can also use parameter mapping. 매개 변수 표식 및 매개 변수 이름 사용 방법에 대한 규칙은 매개 변수가 있는 쿼리에 대한 규칙에서와 마찬가지로 SQL 실행이 사용하는 연결 관리자 유형에 따라 달라집니다.The rules for how to use parameter markers and parameter names depends on the type of connection manager that the Execute SQL uses, just like the rules for parameterized queries.

다음 표에서는 연결 관리자 유형별 EXEC 명령의 예를 나열합니다.The following table lists examples of the EXEC command by connection manager type. 이 예에서는 uspGetBillOfMaterials AdventureWorks2012AdventureWorks2012저장 프로시저를 실행합니다.The examples run the uspGetBillOfMaterials stored procedure in AdventureWorks2012AdventureWorks2012. 이 저장 프로시저는 @StartProductID@CheckDate input 매개 변수를 사용합니다.The stored procedure uses the @StartProductID and @CheckDate input parameters.

연결 형식Connection type EXEC 구문EXEC syntax
EXCEL 및 OLEDBEXCEL and OLEDB EXEC uspGetBillOfMaterials ?, ?
ODBCODBC {call uspGetBillOfMaterials(?, ?)}

ODBC 호출 구문에 대한 자세한 내용은 MSDN Library의 ODBC 프로그래머 참조에서 프로시저 매개 변수항목을 참조하십시오.For more information about ODBC call syntax, see the topic, Procedure Parameters, in the ODBC Programmer's Reference in the MSDN Library.
ADOADO IsQueryStoredProcedure로 설정 되어 있으면 False,EXEC uspGetBillOfMaterials ?, ?If IsQueryStoredProcedure is set to False, EXEC uspGetBillOfMaterials ?, ?

IsQueryStoredProcedure로 설정 되어 있으면 True,uspGetBillOfMaterialsIf IsQueryStoredProcedure is set to True, uspGetBillOfMaterials
ADO.NETADO.NET IsQueryStoredProcedure로 설정 되어 있으면 False,EXEC uspGetBillOfMaterials @StartProductID, @CheckDateIf IsQueryStoredProcedure is set to False, EXEC uspGetBillOfMaterials @StartProductID, @CheckDate

IsQueryStoredProcedure로 설정 되어 있으면 True,uspGetBillOfMaterialsIf IsQueryStoredProcedure is set to True, uspGetBillOfMaterials

출력 매개 변수를 사용하려면 구문에서 각 매개 변수 표식 다음에 OUTPUT 키워드가 와야 합니다.To use output parameters, the syntax requires that the OUTPUT keyword follow each parameter marker. 올바른 출력 매개 변수 구문의 예로 EXEC myStoredProcedure ? OUTPUT을 들 수 있습니다.For example, the following output parameter syntax is correct: EXEC myStoredProcedure ? OUTPUT.

Transact-SQL 저장 프로시저에서 입력 및 출력 매개 변수 사용에 대한 자세한 내용은 EXECUTE(Transact-SQL)를 참조하세요.For more information about using input and output parameters with Transact-SQL stored procedures, see EXECUTE (Transact-SQL).

쿼리 매개 변수 변수 매핑Map query parameters to variables

이 섹션에는 SQL 실행 태스크에서 매개 변수가 있는 SQL 문을 사용 하 고 SQL 문의 변수와 매개 변수 간 매핑을 만드는 방법을 설명 합니다.This section describes how to use a parameterized SQL statement in the Execute SQL task and create mappings between variables and the parameters in the SQL statement.

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 작업하려는 Integration ServicesIntegration Services 패키지를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services package you want to work with.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.In Solution Explorer, double-click the package to open it.

  3. 제어 흐름 탭을 클릭합니다.Click the Control Flow tab.

  4. 패키지에 아직 SQL 실행 태스크가 포함되어 있지 않으면 패키지의 제어 흐름에 해당 작업을 추가합니다.If the package does not already include an Execute SQL task, add one to the control flow of the package. 자세한 내용은 제어 흐름에서 태스크 또는 컨테이너 추가 또는 삭제를 참조하세요.For more information, see Add or Delete a Task or a Container in a Control Flow.

  5. SQL 실행 태스크를 두 번 클릭합니다.Double-click the Execute SQL task.

  6. 다음 방법 중 하나로 매개 변수가 있는 SQL 명령을 제공합니다.Provide a parameterized SQL command in one of the following ways:

    • 직접 입력을 사용하여 SQLStatement 속성에 SQL 명령을 입력합니다.Use direct input and type the SQL command in the SQLStatement property.

    • 직접 입력을 사용하여 쿼리 작성을 클릭한 후 쿼리 작성기에서 제공하는 그래픽 도구를 사용하여 SQL 명령을 만듭니다.Use direct input, click Build Query, and then create an SQL command using the graphical tools that the Query Builder provides.

    • 파일 연결을 사용한 후 SQL 명령이 포함된 파일을 참조합니다.Use a file connection and then reference the file that contains the SQL command.

    • 변수를 사용한 후 SQL 명령이 포함된 변수를 참조합니다.Use a variable and then reference the variable that contains the SQL command.

      매개 변수가 있는 SQL 문에서 사용하는 매개 변수 표식은 SQL 실행 태스크에서 사용하는 연결 형식에 따라 다릅니다.The parameter markers that you use in parameterized SQL statements depend on the connection type that the Execute SQL task uses.

    연결 형식Connection type 매개 변수 표식Parameter marker
    ADOADO ??
    ADO.NET 및 SQLMOBILEADO.NET and SQLMOBILE @<매개 변수 이름 >@<parameter name>
    ODBCODBC ??
    EXCEL 및 OLE DBEXCEL and OLE DB ??

    다음 표에서는 연결 관리자 유형별 SELECT 명령의 예를 나열합니다.The following table lists examples of the SELECT command by connection manager type. 매개 변수는 WHERE 절에 필터 값을 제공합니다.Parameters provide the filter values in the WHERE clauses. 이 예에서는 SELECT를 사용하여 Product AdventureWorks2012AdventureWorks2012 테이블에서 ProductID 가 두 매개 변수로 지정된 값보다 크고 작은 제품을 반환합니다.The examples use SELECT to return products from the Product table in AdventureWorks2012AdventureWorks2012 that have a ProductID greater than and less than the values specified by two parameters.

    연결 형식Connection type SELECT 구문SELECT syntax
    EXCEL, ODBC 및 OLEDBEXCEL, ODBC, and OLEDB SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADOADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADO.NETADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND ProductID < @parmMaxProductID
  7. 매개 변수 매핑을 클릭합니다.Click Parameter Mapping.

  8. 매개 변수 매핑을 추가하려면 추가를 클릭합니다.To add a parameter mapping, click Add.

  9. 매개 변수 이름 상자에 이름을 제공합니다.Provide a name in the Parameter Name box.

    사용하는 매개 변수 이름은 SQL 실행 태스크에 사용하는 연결 형식에 따라 다릅니다.The parameter names that you use depend on the connection type that the Execute SQL task uses.

    연결 형식Connection type 매개 변수 이름Parameter name
    ADOADO Param1, Param2, …Param1, Param2, …
    ADO.NET 및 SQLMOBILEADO.NET and SQLMOBILE @<매개 변수 이름 >@<parameter name>
    ODBCODBC 1, 2, 3, …1, 2, 3, …
    EXCEL 및 OLE DBEXCEL and OLE DB 0, 1, 2, 3, …0, 1, 2, 3, …
  10. 변수 이름 목록에서 변수를 선택합니다.From the Variable Name list, select a variable. 자세한 내용은 패키지에서 사용자 정의 변수의 범위 추가, 삭제, 변경을 참조하세요.For more information, see Add, Delete, Change Scope of User-Defined Variable in a Package.

  11. 방향 목록에서 매개 변수가 입력, 출력 또는 반환 값인지 여부를 지정합니다.In the Direction list, specify if the parameter is an input, an output, or a return value.

  12. 데이터 형식 목록에서 매개 변수의 데이터 형식을 설정합니다.In the Data Type list, set the data type of the parameter.

    중요

    매개 변수의 데이터 형식은 변수의 데이터 형식과 호환되어야 합니다.The data type of the parameter must be compatible with the data type of the variable.

  13. SQL 문의 각 매개 변수에 대해 8에서 11단계를 반복합니다.Repeat steps 8 through 11 for each parameter in the SQL statement.

    중요

    매개 변수 매핑의 순서는 SQL 문에 표시된 매개 변수의 순서와 동일해야 합니다.The order of parameter mappings must be the same as the order in which the parameters appear in the SQL statement.

  14. 확인을 클릭합니다.Click OK.

반환 코드 값 가져오기 Get the values of return codes

저장 프로시저는 반환 코드라고 하는 정수 값을 반환하여 프로시저의 실행 상태를 나타낼 수 있습니다.A stored procedure can return an integer value, called a return code, to indicate the execution status of a procedure. SQL 실행 태스크에 반환 코드를 구현하려면 ReturnValue 유형의 매개 변수를 사용합니다.To implement return codes in the Execute SQL task, you use parameters of the ReturnValue type.

다음 표에서는 반환 코드를 구현하는 EXEC 명령의 몇 가지 예를 연결 형식별로 나열합니다.The following table lists by connection type some examples of EXEC commands that implement return codes. 모든 예에서는 input 매개 변수를 사용합니다.All examples use an input parameter. 매개 변수 표식과 매개 변수 이름을 사용하는 방법에 대한 규칙은Input, Output, ReturnValue등의 모든 매개 변수 유형에 대해 동일합니다.The rules for how to use parameter markers and parameter names are the same for all parameter types—Input, Output, and ReturnValue.

일부 구문은 매개 변수 리터럴을 지원하지 않습니다.Some syntax does not support parameter literals. 이러한 경우 변수를 사용하여 매개 변수 값을 제공해야 합니다.In that case, you must provide the parameter value by using a variable.

연결 형식Connection type EXEC 구문EXEC syntax
EXCEL 및 OLEDBEXCEL and OLEDB EXEC ? = myStoredProcedure 1
ODBCODBC {? = call myStoredProcedure(1)}

ODBC 호출 구문에 대한 자세한 내용은 MSDN Library의 ODBC 프로그래머 참조에서 프로시저 매개 변수항목을 참조하십시오.For more information about ODBC call syntax, see the topic, Procedure Parameters, in the ODBC Programmer's Reference in the MSDN Library.
ADOADO IsQueryStoreProcedure로 설정 되어 있으면 False,EXEC ? = myStoredProcedure 1If IsQueryStoreProcedure is set to False, EXEC ? = myStoredProcedure 1

IsQueryStoreProcedure로 설정 되어 있으면 True,myStoredProcedureIf IsQueryStoreProcedure is set to True, myStoredProcedure
ADO.NETADO.NET Set IsQueryStoreProcedure가 True로 설정됩니다.Set IsQueryStoreProcedure is set to True.

myStoredProcedure

위의 표에 나와 있는 구문에서 SQL 실행 태스크는 직접 입력 원본 유형을 사용하여 저장 프로시저를 실행합니다.In the syntax shown in the previous table, the Execute SQL task uses the Direct Input source type to run the stored procedure. 이 SQL 실행 태스크는 파일 연결 원본 유형을 사용하여 저장 프로시저를 실행할 수도 있습니다.The Execute SQL task can also use the File Connection source type to run a stored procedure. SQL 실행 태스크에서 직접 입력 또는 파일 연결 원본 유형 중 어느 것을 사용하든 간에 ReturnValue 유형의 매개 변수를 사용하여 반환 코드를 구현합니다.Regardless of whether the Execute SQL task uses the Direct Input or File Connection source type, use a parameter of the ReturnValue type to implement the return code.

Transact-SQL 저장 프로시저에서 반환 코드 사용에 대한 자세한 내용은 RETURN(Transact-SQL)을 참조하세요.For more information about using return codes with Transact-SQL stored procedures, see RETURN (Transact-SQL).

SQL 실행 태스크의 결과 집합Result Sets in the Execute SQL Task

Integration ServicesIntegration Services 패키지에서 결과 집합이 SQL 실행 태스크에 반환되는지 여부는 태스크에 사용되는 SQL 명령의 유형에 따라 다릅니다.In an Integration ServicesIntegration Services package, whether a result set is returned to the Execute SQL task depends on the type of SQL command that the task uses. 예를 들어 SELECT 문은 일반적으로 결과 집합을 반환하지만 INSERT 문은 결과 집합을 반환하지 않습니다.For example, a SELECT statement typically returns a result set, but an INSERT statement does not.

결과 집합의 내용도 SQL 명령에 따라 다릅니다.What the result set contains also varies by SQL command. 예를 들어 SELECT 문의 결과 집합은 행을 포함하지 않을 수도 있고, 하나 이상의 행을 포함할 수 있습니다.For example, the result set from a SELECT statement can contain zero rows, one row, or many rows. 그러나 개수 또는 합계를 반환하는 SELECT 문의 결과 집합에는 행 하나만 포함되어 있습니다.However, the result set from a SELECT statement that returns a count or a sum contains only a single row.

SQL 실행 태스크에서 결과 집합을 사용하려면 SQL 명령에서 결과 집합을 반환하는지 여부와 결과 집합의 내용을 아는 것만으로는 충분하지 않습니다.Working with result sets in an Execute SQL task is more than just knowing whether the SQL command returns a result set and what that result set contains. SQL 실행 태스크에서 결과 집합을 제대로 사용하려면 추가적인 사용 요구 사항과 지침을 따라야 합니다.There are additional usage requirements and guidelines to successfully use result sets in the Execute SQL task. 이 항목의 나머지 부분에서는 이러한 사용 요구 사항과 지침을 설명합니다.The remainder of this topic covers these usage requirements and guidelines:

결과 집합 유형 지정 Specify a result set type

SQL 실행 태스크는 다음 유형의 결과 집합을 지원합니다.The Execute SQL task supports the following types of result sets:

  • 없음 결과 집합은 쿼리에서 결과가 반환되지 않을 때 사용합니다.The None result set is used when the query returns no results. 예를 들어 이 결과 집합은 테이블에서 레코드를 추가, 변경 및 삭제하는 쿼리에 사용됩니다.For example, this result set is used for queries that add, change, and delete records in a table.

  • 단일 행 결과 집합은 쿼리에서 하나의 행만 반환될 때 사용합니다.The Single row result set is used when the query returns only one row. 예를 들어 이 결과 집합은 개수 또는 합계를 반환하는 SELECT 문에 사용됩니다.For example, this result set is used for a SELECT statement that returns a count or a sum.

  • 전체 결과 집합 결과 집합은 쿼리에서 여러 개의 행이 반환될 때 사용합니다.The Full result set result set is used when the query returns multiple rows. 예를 들어 이 결과 집합은 테이블의 모든 행을 검색하는 SELECT 문에 사용됩니다.For example, this result set is used for a SELECT statement that retrieves all the rows in a table.

  • XML 결과 집합은 쿼리에서 XML 형식의 결과 집합이 반환될 때 사용합니다.The XML result set is used when the query returns a result set in an XML format. 예를 들어 이 결과 집합은 FOR XML 절을 포함한 SELECT 문에 사용됩니다.For example, this result set is used for a SELECT statement that includes a FOR XML clause.

    SQL 실행 태스크가 전체 결과 집합 결과 집합을 사용하고 쿼리가 여러 행 집합을 반환하는 경우 작업은 첫 번째 행 집합만 반환합니다.If the Execute SQL task uses the Full result set result set and the query returns multiple rowsets, the task returns only the first rowset. 이 행 집합에서 오류가 발생하는 경우 태스크에서 오류를 보고합니다.If this rowset generates an error, the task reports the error. 다른 행 집합에서 오류가 발생하는 경우 태스크에서 오류를 보고하지 않습니다.If other rowsets generate errors, the task does not report them.

결과 집합으로 변수 채우기 Populate a variable with a result set

결과 집합 유형이 단일 행, 행 집합 또는 XML일 경우 쿼리에서 반환된 결과 집합을 사용자 정의 변수에 바인딩할 수 있습니다.You can bind the result set that a query returns to a user-defined variable, if the result set type is a single row, a rowset, or XML.

결과 집합 유형이 단일 행인 경우 열 이름을 결과 집합 이름으로 사용하여 반환 결과의 열을 변수에 바인딩하거나 열 목록의 열의 서수 위치를 결과 집합 이름으로 사용할 수 있습니다.If the result set type is Single row, you can bind a column in the return result to a variable by using the column name as the result set name, or you can use the ordinal position of the column in the column list as the result set name. 예를 들어 SELECT Color FROM Production.Product WHERE ProductID = ? 쿼리에 대한 결과 집합 이름은 Color 또는 0일 수 있습니다.For example, the result set name for the query SELECT Color FROM Production.Product WHERE ProductID = ? could be Color or 0. 쿼리에서 여러 열을 반환하고 모든 열의 값에 액세스하려는 경우 각 열을 다른 변수에 바인딩해야 합니다.If the query returns multiple columns and you want to access the values in all columns, you must bind each column to a different variable. 번호를 결과 집합 이름으로 사용하여 열을 변수에 매핑하면 열이 쿼리의 열 목록에 표시되는 순서가 번호로 적용됩니다.If you map columns to variables using numbers as result set names, the numbers reflect the order in which the columns appear in the column list of the query. 예를 들어 SELECT Color, ListPrice, FROM Production.Product WHERE ProductID = ?쿼리에서 Color 열에 대해 0을 사용하고 ListPrice 열에 대해 1을 사용할 수 있습니다.For example, in the query SELECT Color, ListPrice, FROM Production.Product WHERE ProductID = ?, you use 0 for the Color column and 1 for the ListPrice column. 열 이름을 결과 집합 이름으로 사용하는 기능은 태스크에서 사용하도록 구성된 공급자에 따라 달라집니다.The ability to use a column name as the name of a result set depends on the provider that the task is configured to use. 일부 공급자만 열 이름을 사용할 수 있습니다.Not all providers make column names available.

단일 값을 반환하는 일부 쿼리에는 열 이름이 포함되지 않을 수 있습니다.Some queries that return a single value may not include column names. 예를 들어 SELECT COUNT (*) FROM Production.Product 문은 열 이름을 반환하지 않습니다.For example, the statement SELECT COUNT (*) FROM Production.Product returns no column name. 서수 위치인 0을 결과 이름으로 사용하여 반환 결과에 액세스할 수 있습니다.You can access the return result using the ordinal position, 0, as the result name. 반환 결과 열 이름으로 액세스 하려면 쿼리에 AS 포함 해야 <별칭 이름 > 절에 열 이름을 지정 합니다.To access the return result by column name, the query must include an AS <alias name> clause to provide a column name. SELECT COUNT (*)AS CountOfProduct FROM Production.Product문은 CountOfProduct 열을 제공합니다.The statement SELECT COUNT (*)AS CountOfProduct FROM Production.Product, provides the CountOfProduct column. CountOfProduct 열 이름 또는 서수 위치 0을 사용하여 반환 결과 열에 액세스할 수 있습니다.You can then access the return result column using the CountOfProduct column name or the ordinal position, 0.

결과 집합 유형이 전체 결과 집합 이나 XML이면 결과 집합 이름으로 0을 사용해야 합니다.If the result set type is Full result set or XML, you must use 0 as the result set name.

변수를 단일 행 결과 집합 유형이 있는 결과 집합에 매핑하면 변수에는 결과 집합이 포함하는 열의 데이터 형식과 호환되는 데이터 형식이 있어야 합니다.When you map a variable to a result set with the Single row result set type, the variable must have a data type that is compatible with the data type of the column that the result set contains. 예를 들어 String 데이터 형식이 있는 열을 포함하는 결과 집합은 숫자 데이터 형식의 변수에 매핑할 수 없습니다.For example, a result set that contains a column with a String data type cannot map to a variable with a numeric data type. TypeConversionMode 속성을 Allowed로 설정하면 SQL 실행 태스크는 출력 매개 변수와 쿼리 결과를 결과가 할당되는 변수의 데이터 형식으로 변환합니다.When you set the TypeConversionMode property to Allowed, the Execute SQL Task will attempt to convert output parameter and query results to the data type of the variable the results are assigned to.

XML 결과 집합은 String 또는 Object 데이터 형식의 변수에만 매핑할 수 있습니다.An XML result set can map only to a variable with the String or Object data type. 변수에 String 데이터 형식이 있는 경우 SQL 실행 태스크는 문자열을 반환하고 XML 원본은 XML 데이터를 사용할 수 있습니다.If the variable has the String data type, the Execute SQL task returns a string and the XML source can consume the XML data. 변수가 개체 데이터 형식인 경우 SQL 실행 태스크는 DOM(문서 개체 모델) 개체를 반환합니다.If the variable has the Object data type, the Execute SQL task returns a Document Object Model (DOM) object.

전체 결과 집합Object 데이터 형식의 변수에 매핑되어야 합니다.A Full result set must map to a variable of the Object data type. 반환 결과는 행 집합 개체입니다.The return result is a rowset object. Foreach 루프 컨테이너를 사용하여 개체 변수에 저장된 테이블 행 값을 패키지 변수로 추출한 다음 스크립트 태스크를 사용하여 패키지 변수에 저장된 데이터를 파일에 쓸 수 있습니다.You can use a Foreach Loop container to extract the table row values that are stored in the Object variable into package variables, and then use a Script Task to write the data stored in packages variables to a file. Foreach 루프 컨테이너 및 스크립트 태스크를 사용하여 이러한 작업을 수행하는 방법에 대한 데모는 msftisprodsamples.codeplex.com에서 CodePlex 샘플인 SQL 매개 변수 및 결과 집합 실행(영문)을 참조하세요.For a demonstration on how to do this using a Foreach Loop container and a Script Task, see the CodePlex sample, Execute SQL Parameters and Result Sets, on msftisprodsamples.codeplex.com.

다음 표에는 결과 집합에 매핑될 수 있는 변수의 데이터 형식이 요약되어 있습니다.The following table summarizes the data types of variables that can be mapped to result sets.

결과 집합 유형Result set type 변수의 데이터 형식Data type of variable 개체 유형Type of object
단일 행Single row 결과 집합의 유형 열과 호환되는 모든 형식Any type that is compatible with the type column in the result set. 해당 사항 없음Not applicable
전체 결과 집합Full result set 개체Object 태스크에서 ADO, OLE DB, Excel 및 ODBC 연결 관리자를 비롯한 네이티브 연결 관리자를 사용하는 경우 반환되는 개체는 ADO Recordset입니다.If the task uses a native connection manager, including the ADO, OLE DB, Excel, and ODBC connection managers, the returned object is an ADO Recordset.

태스크에서 ADO.NETADO.NET 연결 관리자와 같이 관리되는 연결 관리자를 사용하는 경우 반환되는 개체는 System.Data.DataSet입니다.If the task uses a managed connection manager, such as the ADO.NETADO.NET connection manager, then the returned object is a System.Data.DataSet.

다음 예제에서처럼 스크립트 태스크를 사용하여 System.Data.DataSet 개체에 액세스할 수 있습니다.You can use a Script task to access the System.Data.DataSet object, as shown in the following example.

Dim dt As Data.DataTable

Dim ds As Data.DataSet = CType(Dts.Variables("Recordset").Value, DataSet) dt = ds.Tables(0)
XMLXML 문자열String 문자열String
XMLXML 개체Object 태스크에서 ADO, OLE DB, Excel 및 ODBC 연결 관리자 등의 네이티브 연결 관리자를 사용하는 경우 반환되는 개체는 MSXML6.IXMLDOMDocument입니다.If the task uses a native connection manager, including the ADO, OLE DB, Excel, and ODBC connection managers, the returned object is an MSXML6.IXMLDOMDocument.

태스크에서 ADO.NETADO.NET 연결 관리자와 같이 관리되는 연결 관리자를 사용하는 경우 반환되는 개체는 System.Xml.XmlDocument입니다.If the task uses a managed connection manager, such as the ADO.NETADO.NET connection manager, the returned object is a System.Xml.XmlDocument.

변수는 SQL 실행 태스크나 패키지 범위에서 정의할 수 있습니다.The variable can be defined in the scope of the Execute SQL task or the package. 변수 범위가 패키지이면 해당 패키지 내의 다른 태스크와 컨테이너는 물론 패키지 실행 또는 DTS 2000 패키지 실행 태스크가 실행한 모든 패키지에서 결과 집합을 사용할 수 있습니다.If the variable has package scope, the result set is available to other tasks and containers within the package, and is available to any packages run by the Execute Package or Execute DTS 2000 Package tasks.

변수를 단일 행 결과 집합에 매핑할 때 SQL 문에서 반환하는 문자열이 아닌 값은 다음 조건을 충족하는 경우 문자열로 변환됩니다.When you map a variable to a Single row result set, non-string values that the SQL statement returns are converted to strings when the following conditions are met:

  • TypeConversionMode 속성이 True로 설정된 경우.The TypeConversionMode property is set to true. 속성 창 또는 SQL 실행 태스크 편집기를 사용하여 속성 값을 설정합니다.You set the property value in the Properties window or by using the Execute SQL Task Editor.

  • 변환에서 데이터 잘림이 발생하지 않은 경우The conversion will not result in data truncation.

결과 집합을 SQL 실행 태스크의 변수에 매핑Map result sets to variables in an Execute SQL Task

이 섹션에는 SQL 실행 태스크의 결과 집합과 변수 간 매핑을 만드는 방법을 설명 합니다.This section describes how to create a mapping between a result set and a variable in an Execute SQL task. 결과 집합을 변수에 매핑하면 결과 집합을 패키지의 다른 요소에서 사용할 수 있습니다.Mapping a result set to a variable makes the result set available to other elements in the package. 예를 들어 스크립트 태스크의 스크립트는 변수를 읽은 다음 결과 집합의 값을 사용할 수 있으며 XML 원본은 변수에 저장된 결과 집합을 사용할 수 있습니다.For example, a script in a Script task can read the variable and then use the values from the result set or an XML source can consume the result set stored in a variable. 부모 패키지에서 결과 집합을 생성하는 경우 결과 집합을 부모 패키지의 변수에 매핑한 다음 부모 변수 값을 저장할 자식 패키지의 부모 패키지 변수 구성을 만들어 패키지 실행 태스크로 호출하는 자식 패키지에서 결과 집합을 사용할 수 있습니다.If the result set is generated by a parent package, the result set can be made available to a child package called by an Execute Package task by mapping the result set to a variable in the parent package, and then creating a parent package variable configuration in the child package to store the parent variable value.

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 원하는 패키지가 들어 있는 Integration ServicesIntegration Services 프로젝트를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package you want.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.In Solution Explorer, double-click the package to open it.

  3. 제어 흐름 탭을 클릭합니다.Click the Control Flow tab.

  4. 패키지에 아직 SQL 실행 태스크가 포함되어 있지 않으면 패키지의 제어 흐름에 해당 작업을 추가합니다.If the package does not already include an Execute SQL task, add one to the control flow of the package. 자세한 내용은 제어 흐름에서 태스크 또는 컨테이너 추가 또는 삭제를 참조하세요.For more information, see Add or Delete a Task or a Container in a Control Flow.

  5. SQL 실행 태스크를 두 번 클릭합니다.Double-click the Execute SQL task.

  6. SQL 실행 태스크 편집기 대화 상자의 일반 페이지에서 단일 행, 전체 결과 집합또는 XML 결과 집합 형식을 선택합니다.In the Execute SQL Task Editor dialog box, on the General page, select the Single row, Full result set, or XML result set type.

  7. 결과 집합을 클릭합니다.Click Result Set.

  8. 결과 집합 매핑을 추가하려면 추가를 클릭합니다.To add a result set mapping, click Add.

  9. 변수 이름 목록에서 변수를 선택하거나 새 변수를 만듭니다.From the Variables Name list, select a variable or create a new variable. 자세한 내용은 패키지에서 사용자 정의 변수의 범위 추가, 삭제, 변경을 참조하세요.For more information, see Add, Delete, Change Scope of User-Defined Variable in a Package.

  10. 필요에 따라 결과 이름 목록에서 결과 집합의 이름을 수정합니다.In the Result Name list, optionally, modify the name of the result set.

    일반적으로 열 이름을 결과 집합 이름으로 사용하거나 열 목록의 열 서수 위치를 결과 집합으로 사용할 수 있습니다.In general, you can use the column name as the result set name, or you can use the ordinal position of the column in the column list as the result set. 열 이름을 결과 집합 이름으로 사용하는 기능은 태스크에서 사용하도록 구성된 공급자에 따라 달라집니다.The ability to use a column name as the result set name depends on the provider that the task is configured to use. 일부 공급자만 열 이름을 사용할 수 있습니다.Not all providers make column names available.

  11. 확인을 클릭합니다.Click OK.

SQL 실행 태스크 문제 해결Troubleshoot the Execute SQL task

SQL 실행 태스크가 외부 데이터 공급자에 대해 수행하는 호출을 기록할 수 있습니다.You can log the calls that the Execute SQL task makes to external data providers. 이 로깅 기능을 사용하여 SQL 실행 태스크가 실행하는 SQL 명령의 문제를 해결할 수 있습니다.You can use this logging capability to troubleshoot the SQL commands that the Execute SQL task runs. SQL 실행 태스크가 외부 데이터 공급자에 대해 수행하는 호출을 기록하려면 패키지 로깅을 사용하도록 설정하고 패키지 수준에서 Diagnostic 이벤트를 선택합니다.To log the calls that the Execute SQL task makes to external data providers, enable package logging and select the Diagnostic event at the package level. 자세한 내용은 패키지 실행 문제 해결 도구를 참조하세요.For more information, see Troubleshooting Tools for Package Execution.

경우에 따라 SQL 명령 또는 저장 프로시저는 여러 결과 집합을 반환합니다.Sometimes a SQL command or stored procedure returns multiple result sets. 이러한 결과 집합에는 SELECT 쿼리의 결과인 행 집합뿐만 아니라 RAISERROR 또는 PRINT 문에 대한 오류 결과인 단일 값도 포함됩니다.These result sets include not only rowsets that are the result of SELECT queries, but single values that are the result of errors of RAISERROR or PRINT statements. 이 태스크에서 첫 번째 결과 집합 후에 발생하는 결과 집합의 오류를 무시할지 여부는 사용되는 연결 관리자의 유형에 따라 달라집니다.Whether the task ignores errors in result sets that occur after the first result set depends on the type of connection manager that is used:

  • OLE DB 및 ADO 연결 관리자를 사용하는 경우 태스크에서 첫 번째 결과 집합 후에 발생하는 결과 집합을 무시합니다.When you use OLE DB and ADO connection managers, the task ignores the result sets that occur after the first result set. 따라서 이러한 연결 관리자를 사용하는 경우에는 오류가 첫 번째 결과 집합의 일부가 아니면 태스크에서 SQL 명령 또는 저장 프로시저가 반환하는 오류를 무시합니다.Therefore, with these connection managers, the task ignores an error returned by an SQL command or a stored procedure when the error is not part of the first result set.

  • ODBC 및 ADO.NET 연결 관리자를 사용하는 경우 태스크에서 첫 번째 결과 집합 후에 발생하는 결과 집합을 무시하지 않습니다.When you use ODBC and ADO.NET connection managers, the task does not ignore result sets that occur after the first result set. 이러한 연결 관리자를 사용하는 경우 첫 번째 결과 집합이 아닌 다른 결과 집합에 오류가 포함되어 있으면 오류가 발생하여 태스크에 실패하게 됩니다.With these connection managers, the task will fail with an error when a result set other than the first result set contains an error.

사용자 지정 로그 항목Custom Log Entries

다음 표에서는 SQL 실행 태스크에 대한 사용자 지정 로그 항목을 설명합니다.The following table describes the custom log entry for the Execute SQL task. 자세한 내용은 Integration Services(SSIS) 로깅을 참조하세요.For more information, see Integration Services (SSIS) Logging.

로그 항목Log entry DescriptionDescription
ExecuteSQLExecutingQueryExecuteSQLExecutingQuery SQL 문의 실행 단계에 대한 정보를 제공합니다.Provides information about the execution phases of the SQL statement. 로그 항목은 태스크에서 데이터베이스에 대한 연결을 설정할 때, 태스크에서 SQL 문 준비를 시작할 때 또는 SQL 문 실행이 완료된 후에 기록됩니다.Log entries are written when the task acquires connection to the database, when the task starts to prepare the SQL statement, and after the execution of the SQL statement is completed. 준비 단계에 대한 로그 항목은 태스크에서 사용하는 SQL 문을 포함합니다.The log entry for the prepare phase includes the SQL statement that the task uses.