Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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)