Megosztás:


VISSZATÉRÉS (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Feltétel nélkül kilép egy lekérdezésből vagy eljárásból. A RETURN azonnali és kész, és bármely ponton használható az eljárás, a köteg vagy az utasításblokkból való kilépéshez. A RETURN utasítást követő utasítások nem lesznek végrehajtva.

Transact-SQL szintaxis konvenciók

Syntax

RETURN [ integer_expression ]   

Arguments

integer_expression
A visszaadott egész számérték. A tárolt eljárások egész számot adhatnak vissza egy hívási eljárásnak vagy alkalmazásnak.

Visszatérési típusok

Igény szerint int értéket ad vissza.

Note

Ha nincs más dokumentálva, minden rendszer által tárolt eljárás 0 értéket ad vissza. Ez a sikerességet jelzi, a nemero érték pedig a sikertelenséget jelzi.

Remarks

Tárolt eljárás használata esetén a RETURN nem tud null értéket visszaadni. Ha egy eljárás null értéket próbál visszaadni (például NULL érték esetén a RETURN @status@status függvényt használja), a rendszer figyelmeztető üzenetet hoz létre, és 0 értéket ad vissza.

A visszatérési állapot értéke szerepelhet az aktuális eljárást végrehajtó köteg vagy eljárás későbbi Transact-SQL utasításaiban, de a következő formában kell megadni: EXECUTE @return_status = <procedure_name>.

Examples

A. Visszatérés egy eljárásból

Az alábbi példa azt mutatja be, hogy a végrehajtáskor findjobs nincs-e megadva felhasználónév paraméterként, RETURN az eljárás a felhasználó képernyőjére küldött üzenet elküldése után lép ki. Ha felhasználónév van megadva, a rendszer lekéri a felhasználó által az aktuális adatbázisban létrehozott összes objektum nevét a megfelelő rendszertáblákból.

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. Állapotkódok visszaadása

Az alábbi példa egy adott partner azonosítójának állapotát ellenőrzi. Ha az állam Washington (WA), a rendszer visszaadja az állapotot 1 . 2 Ellenkező esetben a függvény bármely más feltételhez (egy sortól WAStateProvince eltérő vagy ContactID nem egyező érték) adja vissza.

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

Az alábbi példák a végrehajtás checkstatevisszatérési állapotát mutatják be. Az elsőben egy washingtoni partner látható; a második, kapcsolatfelvétel nem Washingtonban; a harmadik pedig érvénytelen névjegy. A @return_status helyi változót a használat előtt deklarálni kell.

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

Itt van az eredmények összessége.

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

Futtassa újra a lekérdezést, és adjon meg egy másik partnerszámot.

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

Itt van az eredmények összessége.

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

Futtassa újra a lekérdezést, és adjon meg egy másik partnerszámot.

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

Itt van az eredmények összessége.

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

Lásd még:

ALTER PROCEDURE (Transact-SQL)
LÉTREHOZÁSI ELJÁRÁS (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
EXECUTE (Transact-SQL)
SET @local_variable (Transact-SQL)
DOBÁS (Transact-SQL)