Dela via


RETURN (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Förhandsversion av Microsoft Fabric

Avslutar villkorslöst från en fråga eller procedur. RETURN är omedelbart och fullständigt och kan användas när som helst för att avsluta ett procedur-, batch- eller instruktionsblock. Instruktioner som följer RETURN körs inte.

Transact-SQL syntaxkonventioner

Syntax

RETURN [ integer_expression ]   

Arguments

integer_expression
Är heltalsvärdet som returneras. Lagrade procedurer kan returnera ett heltalsvärde till en anropsprocedur eller ett program.

Return Types

Du kan också returnera int.

Note

Om inget annat anges returnerar alla system lagrade procedurer värdet 0. Detta indikerar framgång och ett icke-nollvärde indikerar fel.

Remarks

När det används med en lagrad procedur kan RETURN inte returnera ett null-värde. Om en procedur försöker returnera ett null-värde (till exempel med RETUR @status när @status är NULL) genereras ett varningsmeddelande och värdet 0 returneras.

Returstatusvärdet kan inkluderas i efterföljande Transact-SQL-instruktioner i batchen eller proceduren som körde den aktuella proceduren, men det måste anges i följande formulär: EXECUTE @return_status = <procedure_name>.

Examples

A. Återvänder från en procedur

I följande exempel visas om inget användarnamn anges som en parameter när findjobs körs, RETURN vilket gör att proceduren avslutas när ett meddelande har skickats till användarens skärm. Om ett användarnamn anges hämtas namnen på alla objekt som skapats av den här användaren i den aktuella databasen från lämpliga systemtabeller.

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

I följande exempel kontrolleras tillståndet för ID för en angiven kontakt. Om delstaten är Washington (WA) returneras statusen 1 för . Annars 2 returneras för andra villkor (ett annat värde än WA för StateProvince eller ContactID som inte matchade en rad).

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  

I följande exempel visas returstatusen från körningen av checkstate. Den första visar en kontakt i Washington; den andra, kontakta inte i Washington; och den tredje, en kontakt som inte är giltig. Den @return_status lokala variabeln måste deklareras innan den kan användas.

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

Här är resultatet.

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

Kör frågan igen och ange ett annat kontaktnummer.

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

Här är resultatet.

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

Kör frågan igen och ange ett annat kontaktnummer.

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

Här är resultatet.

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

See Also

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