다음을 통해 공유


RETURN 사용

RETURN 문은 쿼리, 저장 프로시저 또는 일괄 처리를 무조건 종료합니다. 저장 프로시저 또는 일괄 처리에서 RETURN 문 다음에 오는 문은 실행되지 않습니다.

RETURN 문을 저장 프로시저에 사용하면 호출하는 응용 프로그램, 일괄 처리 또는 프로시저에 반환할 정수 값을 지정할 수 있습니다. RETRUN에 지정된 값이 없으면 저장 프로시저는 값 0을 반환합니다.

대부분의 저장 프로시저는 반환 코드를 사용하여 저장 프로시저의 성공 또는 실패를 나타내는 규칙을 따릅니다. 저장 프로시저는 오류가 발생하지 않으면 값 0을 반환합니다. 값이 0이 아니면 오류가 발생한 것입니다. 예를 들면 다음과 같습니다.

USE AdventureWorks;
GO
-- 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 c.FirstName, c.LastName, e.Title
FROM HumanResources.Employee AS e
JOIN Person.Contact AS c ON e.ContactID = c.ContactID
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 일괄 처리 또는 저장 프로시저는 다음과 같이 반환 코드를 정수 변수로 가져올 수 있습니다.

DECLARE @ReturnStatus int;
DECLARE @MaxTotalVariable int;
DECLARE @MaxTotal int;
EXECUTE @ReturnStatus = SampleProcedure @EmployeeIDParm = 65 ,@MaxTotal = @MaxTotalVariable OUTPUT;
PRINT ' ';
PRINT 'Return code = ' + CAST(@ReturnStatus AS CHAR(10));
PRINT 'Maximum Order Total = ' + CAST(@MaxTotalVariable AS CHAR(15));
GO

저장 프로시저를 호출하는 응용 프로그램은 반환 코드에 해당하는 매개 변수 표식을 정수 변수에 바인딩할 수 있습니다.

참고 항목

개념

매개 변수 표식(데이터베이스 엔진)

관련 자료

EXECUTE(Transact-SQL)
RETURN(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기