ZWROT (Transact-SQL)

Wyjścia bezwarunkowo z kwerendy lub procedury.ZWRACANY jest natychmiastowa i pełna i można w dowolnym punkcie wyjścia z procedury, partialub instrukcja blok.Instrukcje, które należy wykonać zwrotu nie są wykonywane.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

RETURN [ integer_expression ] 

Argumenty

  • integer_expression
    Jest zwracana jest wartość całkowitą.Procedury przechowywane może zwracać wartość całkowitą wywołanie procedury lub aplikacji.

Zwracane typy

Opcjonalnie zwraca int.

Ostrzeżenie

Chyba że udokumentowane inaczej, wszystkie procedury składowane w systemie zwracają wartość 0.To oznacza sukces i wartość różną od zera wskazuje błąd.

Uwagi

Gdy używana z procedura składowana, zwrotu nie może zwrócić wartość null .Jeśli procedura próbuje zwracają wartość null (na przykład przy użyciu zwrotu @status po @status ma wartość NULL), generowany jest komunikat ostrzegawczy i zwracana jest wartość 0.

Wartość stanu zwrotu można uwzględnić w kolejnych Transact-SQL instrukcji partia lub procedury, które wykonywane bieżącej procedury, ale musi być wprowadzona w następującej postaci: EXECUTE @return_status = <procedure_name>.

Przykłady

A.Zwracanie z procedury

W poniższym przykładzie pokazano, jeśli nazwa użytkownika nie jest określony jako parametr podczas findjobs jest wykonywany, RETURN powoduje, że procedurę, aby zakończyć pracę po wysłaniu wiadomości do ekranu użytkownika.Jeżeli określono nazwę użytkownika, nazwy wszystkich obiektów utworzonych przez użytkownika w bieżącej bazie danych są pobierane z odpowiednich tabele systemowe.

CREATE PROCEDURE findjobs @nm sysname = NULL
AS 
IF @nm IS NULL
    BEGIN
        PRINT 'You must give a user name'
        RETURN
    END
ELSE
    BEGIN
        SELECT o.name, o.id, o.uid
        FROM sysobjects o INNER JOIN master..syslogins l
            ON o.uid = l.sid
        WHERE l.name = @nm
    END;

B.Zwracanie kody stanu

Poniższy przykład sprawdza stan dla Identyfikatora określonego kontaktu.Jeśli stan jest Waszyngton (WA), stan 1 jest zwracany.W przeciwnym razie 2 jest zwracana dla dowolnego warunku (wartość inną niż WA dla StateProvince lub BusinessEntityID niezgodne wiersza).

USE AdventureWorks2008R2;
GO
CREATE PROCEDURE checkstate @param varchar(11)
AS
IF (SELECT StateProvince FROM Person.vAdditionalContactInfo WHERE BusinessEntityID = @param) = 'WA'
    RETURN 1
ELSE
    RETURN 2;
GO

Poniższe przykłady pokazują stan zwrotu wykonywanie checkstate.Pierwszy zawiera kontaktu w Waszyngtonie; drugi kontakt nie jest w stanie Waszyngton; a trzecim kontaktu, który nie jest prawidłowy.@return_status Musi być zadeklarowana zmienna lokalna, zanim będzie można go używać.

DECLARE @return_status int;
EXEC @return_status = checkstate '291';
SELECT 'Return Status' = @return_status;
GO

Oto zestaw wyników.

Return Status

-------------

1

Wykonaj kwerendę ponownie, określając inny numer kontaktu.

DECLARE @return_status int;
EXEC @return_status = checkstate '6';
SELECT 'Return Status' = @return_status;
GO

Oto zestaw wyników.

Return Status

-------------

2

Wykonaj kwerendę ponownie, określając inny numer kontaktu.

DECLARE @return_status int
EXEC @return_status = checkstate '12345678901';
SELECT 'Return Status' = @return_status;
GO

Oto zestaw wyników.

Return Status

-------------

2