Udostępnij przez


Za pomocą zwrotu

Instrukcja RETURN kończy bezwarunkowo kwerendy, procedura składowana lub partia.Brak instrukcja w procedura składowana lub partia po instrukcja RETURN są wykonywane.

W procedura składowana, instrukcja RETURN można określić wartość całkowitą, aby powrócić do aplikacji wywołującej, programu wsadowego lub procedury.Jeśli nie określono wartości powrotu, procedura składowana zwraca wartość 0.

Większość procedur przechowywanych wykonaj Konwencji za pomocą kod zwrotny wskazują powodzenie lub niepowodzenie procedura składowana.Napotkano zwrotu procedur przechowywanych wartość 0, gdy żadne błędy.Oznacza dowolną wartość niezerową, wystąpił błąd.Na przykład:

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 p.FirstName, p.LastName, e.JobTitle
FROM HumanResources.Employee AS e
JOIN Person.Person AS p 
    ON p.BusinessEntityID = e.BusinessEntityID
WHERE e.BusinessEntityID = @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;

A Transact-SQL partia lub procedura składowana, która wykonuje procedura składowana można pobrać kod zwrotny do zmiennej całkowitą:

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

Aplikacje, które wywołują procedura składowana można powiązać zmienna typu Liczba całkowita znacznik parametru odpowiadającej kod zwrotny.