Udostępnij za pośrednictwem


RETURN (języka Transact-SQL)

Wyjścia bezwarunkowo z kwerendy lub procedury.RETURN są natychmiastowe i kompletne i można w dowolnym punkcie wyjścia z procedury, partia, lub blok instrukcja.Instrukcje, które należy wykonać RETURN nie są wykonywane.

Topic link iconKonwencje składni języka Transact-SQL

RETURN [ integer_expression ] 

Argumenty

  • integer_expression
    Jest wartością całkowitą zwrócone.Procedury przechowywane mogą zwracać wartość całkowitą wywołanie procedury lub aplikacji.

Zwracane typy

Opcjonalnie zwraca int.

Uwaga

Chyba, że udokumentowane w przeciwnym razie, wszystkie systemowe przechowywane procedury powrotu na wartość 0.To oznacza sukces i wartość różną od zera wskazuje błąd.

Remarks

Gdy używana z procedura przechowywana, RETURN nie może zwracać wartości zerowej.Jeśli procedura będzie próbował zwracają wartość zerową (na przykład przy użyciu RETURN @ stan, gdy @ stan ma wartość NULL), generowany jest komunikat ostrzegawczy i zwracana jest wartość 0.

Wartość zwracana stanu może być uwzględniany w kolejnych Transact-SQL instrukcje 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.Powrót z procedury

W poniższym przykładzie pokazano, jeśli nazwa użytkownika nie jest określony jako parametr podczas findjobs zostanie wykonany, RETURN powoduje, że procedury zakończyć pracę po wysłaniu wiadomości do ekranu komputera 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 tabel odpowiedniego systemu.

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

W poniższym przykładzie sprawdza stan dla IDENTYFIKATORA określonego kontaktu.Jeżeli stan jest Waszyngton)WA), stan 1 jest zwracany. W przeciwnym razie 2 jest zwracana dla wszelkich innych warunku, (wartość inną niż WA dla StateProvince lub ContactID który nie odpowiada wiersz).

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

Następujące przykłady przedstawiają stan zwrotu wykonywanie checkstate. Pierwszy zawiera kontaktu w Waszyngtonie; drugi kontaktu nie jest w stanie Waszyngton; i trzeci, kontakt, który nie jest prawidłowy.The @return\_status local variable must be declared before it can be used.

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

Here is the result set.

Return Status 
------------- 
1             

wykonać kwerendy, ponownie, określając inną liczbę kontaktów.

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

Here is the result set.

Return Status 
------------- 
2

wykonać kwerendy, ponownie, określając inną numer kontaktu.

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

Here is the result set.

Return Status 
------------- 
2