Delen via


RETURN (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

Sluit voorwaardelijke gegevens af van een query of procedure. RETURN is onmiddellijk en volledig en kan op elk gewenst moment worden gebruikt om af te sluiten van een procedure, batch of instructieblok. Instructies die volgen op RETURN worden niet uitgevoerd.

Transact-SQL syntaxis-conventies

Syntax

RETURN [ integer_expression ]   

Arguments

integer_expression
Is de geheel getalwaarde die wordt geretourneerd. Opgeslagen procedures kunnen een geheel getal retourneren aan een aanroepende procedure of een toepassing.

Return Types

Retourneert desgewenst int.

Note

Tenzij anders gedocumenteerd, retourneren alle door het systeem opgeslagen procedures een waarde van 0. Dit duidt op succes en een niet-nulwaarde geeft aan dat de fout is mislukt.

Remarks

Bij gebruik met een opgeslagen procedure kan RETURN geen null-waarde retourneren. Als een procedure een null-waarde probeert te retourneren (bijvoorbeeld met RETURN @status als @status null), wordt er een waarschuwingsbericht gegenereerd en wordt een waarde van 0 geretourneerd.

De retourstatuswaarde kan worden opgenomen in volgende Transact-SQL instructies in de batch of procedure die de huidige procedure heeft uitgevoerd, maar moet worden ingevoerd in de volgende vorm: EXECUTE @return_status = <procedure_name>

Examples

A. Terugkeren vanuit een procedure

In het volgende voorbeeld ziet u of er geen gebruikersnaam is opgegeven als parameter wanneer findjobs deze wordt uitgevoerd, RETURN de procedure wordt afgesloten nadat een bericht naar het scherm van de gebruiker is verzonden. Als er een gebruikersnaam is opgegeven, worden de namen van alle objecten die door deze gebruiker in de huidige database zijn gemaakt, opgehaald uit de juiste systeemtabellen.

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

In het volgende voorbeeld wordt de status gecontroleerd op de id van een opgegeven contactpersoon. Als de staat Washington (WA) is, wordt een status 1 geretourneerd. 2 Anders wordt geretourneerd voor een andere voorwaarde (een andere waarde dan WA voor StateProvince of ContactID die niet overeenkomt met een rij).

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  

In de volgende voorbeelden ziet u checkstatede retourstatus van het uitvoeren. De eerste toont een contactpersoon in Washington; de tweede contactpersoon niet in Washington; en de derde, een contactpersoon die niet geldig is. De @return_status lokale variabele moet worden gedeclareerd voordat deze kan worden gebruikt.

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

Hier is het resultatenoverzicht.

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

Voer de query opnieuw uit en geef een ander contactnummer op.

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

Hier is het resultatenoverzicht.

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

Voer de query opnieuw uit en geef een ander contactnummer op.

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

Hier is het resultatenoverzicht.

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

See Also

ALTER PROCEDURE (Transact-SQL)
PROCEDURE MAKEN (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
EXECUTE (Transact-SQL)
SET @local_variable (Transact-SQL)
THROW (Transact-SQL)