적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric 미리 보기의 SQL 데이터베이스
매개 변수는 저장 프로시저나 함수를 호출하는 도구 또는 애플리케이션, 함수 및 저장 프로시저 간에 데이터를 교환하는 데 사용됩니다.
- 입력 매개 변수를 사용하면 호출자가 데이터 값을 저장 프로시저 또는 함수에 전달할 수 있습니다.
- 출력 매개 변수를 사용하면 저장 프로시저가 데이터 값 또는 커서 변수를 호출자에게 다시 전달할 수 있습니다. 사용자 정의 함수는 출력 매개 변수를 지정할 수 없습니다.
- 모든 저장 프로시저는 호출자에게 정수 반환 코드를 반환합니다. 저장 프로시저에서 반환 코드에 대한 값을 명시적으로 설정하지 않으면 반환 코드는 0입니다.
다음 저장 프로시저에서는 입력 매개 변수, 출력 매개 변수 및 반환 코드를 사용하는 방법을 보여줍니다.
-- 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
저장 프로시저 또는 함수가 실행되면 입력 매개 변수의 값은 상수로 설정되거나 변수 값을 사용할 수 있습니다. 출력 매개 변수 및 반환 코드는 해당 값을 변수로 반환해야 합니다. 매개 변수 및 반환 코드는 데이터 값을 Transact-SQL 변수 또는 애플리케이션 변수와 교환할 수 있습니다.
일괄 처리 또는 스크립트에서 저장 프로시저를 호출하면 매개 변수와 반환 코드 값은 동일한 일괄 처리에 정의된 Transact-SQL 변수를 사용할 수 있습니다. 다음 예제는 앞에서 만든 프로시저를 실행하는 일괄 처리입니다. 입력 매개 변수는 상수로 지정되고, 출력 매개 변수와 반환 코드는 해당 값을 Transact-SQL 변수에 배치합니다.
-- 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
애플리케이션은 프로그램 변수에 바인딩된 매개 변수 표식 사용하여 데이터를 애플리케이션 변수, 매개 변수 및 반환 코드 간에 교환할 수 있습니다.
See Also
CREATE PROCEDURE(Transact-SQL)
DECLARE @local_variable (Transact-SQL)
CREATE FUNCTION(Transact-SQL)
매개 변수 및 실행 계획 다시 사용 섹션
Variables (Transact-SQL)