Sdílet prostřednictvím


RETURN (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Ukončete bezpodmínečně dotaz nebo proceduru. RETURN je okamžitá a úplná a lze ji použít v libovolném okamžiku k ukončení z bloku procedury, dávky nebo příkazu. Příkazy, které následují return, se nespouštějí.

Transact-SQL konvence syntaxe

Syntax

RETURN [ integer_expression ]   

Arguments

integer_expression
Je celočíselná hodnota vrácená. Uložené procedury mohou vrátit celočíselnou hodnotu volající procedurě nebo aplikaci.

Návratové typy

Volitelně vrátí hodnotu int.

Note

Pokud není uvedeno jinak, vrátí všechny uložené procedury systému hodnotu 0. To značí úspěch a nenulovou hodnotu značí selhání.

Remarks

Při použití s uloženou procedurou return nemůže vrátit hodnotu null. Pokud se procedura pokusí vrátit hodnotu null (například pomocí RETURN @status , pokud @status je null), vygeneruje se zpráva upozornění a vrátí se hodnota 0.

Návratová hodnota stavu může být zahrnuta do následných Transact-SQL příkazů v dávce nebo postupu, který provedl aktuální proceduru, ale musí být zadán v následujícím formuláři: EXECUTE @return_status = <procedure_name>.

Examples

A. Vrácení z procedury

Následující příklad ukazuje, zda není zadáno žádné uživatelské jméno jako parametr při findjobs spuštění, RETURN způsobí ukončení postupu po odeslání zprávy na obrazovku uživatele. Pokud je zadáno uživatelské jméno, názvy všech objektů vytvořených tímto uživatelem v aktuální databázi se načtou z příslušných systémových tabulek.

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. Vrácení stavových kódů

Následující příklad zkontroluje stav ID zadaného kontaktu. Pokud je stát Washington (WA), vrátí se stav 1 . 2 V opačném případě se vrátí pro jakoukoli jinou podmínku (jinou hodnotu, než WA je hodnota StateProvince nebo ContactID která neodpovídá řádku).

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  

Následující příklady ukazují stav vrácení ze spuštění checkstate. První ukazuje kontakt ve Washingtonu; druhý kontakt, který není ve Washingtonu; a třetí kontakt, který není platný. Aby @return_status bylo možné ji použít, musí být místní proměnná deklarována.

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

Tady je soubor výsledků.

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

Spusťte dotaz znovu a zadejte jiné číslo kontaktu.

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

Tady je soubor výsledků.

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

Spusťte dotaz znovu a zadejte jiné kontaktní číslo.

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

Tady je soubor výsledků.

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

Viz také

ALTERŮV ZÁKROK (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
EXECUTE (Transact-SQL)
SET @local_variable (Transact-SQL)
HOĎ (Transact-SQL)