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)