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.
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