매개 변수Parameters

매개 변수는 저장 프로시저나 함수를 호출하는 도구 또는 응용 프로그램, 함수 및 저장 프로시저 간에 데이터를 교환하는 데 사용됩니다.Parameters are used to exchange data between stored procedures and functions and the application or tool that called the stored procedure or function:

  • 입력 매개 변수를 사용하면 호출자가 저장 프로시저나 함수에 데이터 값을 전달할 수 있습니다.Input parameters allow the caller to pass a data value to the stored procedure or function.
  • 출력 매개 변수를 사용하면 저장 프로시저가 저장 프로시저나 함수에 데이터 값이나 커서 변수를 다시 전달할 수 있습니다.Output parameters allow the stored procedure to pass a data value or a cursor variable back to the caller. 사용자 정의 함수는 출력 매개 변수를 지정할 수 없습니다.User-defined functions cannot specify output parameters.
  • 모든 저장 프로시저는 호출자에게 정수 반환 코드를 반환합니다.Every stored procedure returns an integer return code to the caller. 저장 프로시저가 반환 코드에 대해 값을 명시적으로 설정하지 않는 경우 반환 코드는 0입니다.If the stored procedure does not explicitly set a value for the return code, the return code is 0.

다음 저장 프로시저는 입력 매개 변수, 출력 매개 변수 및 반환 코드의 사용 방식을 보여 줍니다.The following stored procedure shows the use of an input parameter, an output parameter, and a return code:

-- Create a procedure that takes one input parameter and returns one output parameter and a return code.
CREATE PROCEDURE SampleProcedure @EmployeeIDParm INT,
         @MaxTotal INT OUTPUT
AS
-- Declare and initialize a variable to hold @@ERROR.
DECLARE @ErrorSave INT
SET @ErrorSave = 0

-- Do a SELECT using the input parameter.
SELECT FirstName, LastName, JobTitle
FROM HumanResources.vEmployee
WHERE EmployeeID = @EmployeeIDParm

-- Save any nonzero @@ERROR value.
IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Set a value in the output parameter.
SELECT @MaxTotal = MAX(TotalDue)
FROM Sales.SalesOrderHeader;

IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Returns 0 if neither SELECT statement had an error; otherwise, returns the last error.
RETURN @ErrorSave
GO

저장 프로시저나 함수가 실행되면 입력 매개 변수는 값을 상수로 설정하거나 변수의 값을 사용할 수 있습니다.When a stored procedure or function is executed, input parameters can either have their value set to a constant or use the value of a variable. 출력 매개 변수와 반환 코드는 값을 변수로 반환해야 합니다.Output parameters and return codes must return their values into a variable. 매개 변수와 반환 코드는 Transact-SQL 변수나 응용 프로그램 변수와 데이터 값을 교환할 수 있습니다.Parameters and return codes can exchange data values with either Transact-SQL variables or application variables.

일괄 처리 또는 스크립트에서 저장 프로시저를 호출하면 매개 변수와 반환 코드 값은 동일한 일괄 처리에 정의된 Transact-SQL 변수를 사용할 수 있습니다.If a stored procedure is called from a batch or script, the parameters and return code values can use Transact-SQL variables defined in the same batch. 다음 예는 이전에 생성된 프로시저를 실행하는 일괄 처리입니다.The following example is a batch that executes the procedure created earlier. 입력 매개 변수는 상수로 지정되고 출력 매개 변수와 반환 코드는 해당 값을 Transact-SQL 변수에 넣습니다.The input parameter is specified as a constant and the output parameter and return code place their values in Transact-SQL variables:

-- Declare the variables for the return code and output parameter.
DECLARE @ReturnCode INT
DECLARE @MaxTotalVariable INT

-- Execute the stored procedure and specify which variables
-- are to receive the output parameter and return code values.
EXEC @ReturnCode = SampleProcedure @EmployeeIDParm = 19,
   @MaxTotal = @MaxTotalVariable OUTPUT

-- Show the values returned.
PRINT ' '
PRINT 'Return code = ' + CAST(@ReturnCode AS CHAR(10))
PRINT 'Maximum Quantity = ' + CAST(@MaxTotalVariable AS CHAR(10))
GO

응용 프로그램은 프로그램 변수에 바인딩된 매개 변수 표식을 사용하여 응용 프로그램 변수, 매개 변수 및 반환 코드 간에 데이터를 교환할 수 있습니다.An application can use parameter markers bound to program variables to exchange data between application variables, parameters, and return codes.

참고 항목See Also

CREATE PROCEDURE(Transact-SQL) CREATE PROCEDURE (Transact-SQL)
DECLARE @local_variable(Transact-SQL) DECLARE @local_variable (Transact-SQL)
CREATE FUNCTION(Transact-SQL) CREATE FUNCTION (Transact-SQL)
매개 변수 및 실행 계획 재사용 섹션 Parameters and Execution Plan Reuse section
변수(Transact-SQL)Variables (Transact-SQL)