Aracılığıyla paylaş


DÖNÜŞ (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Sorgudan veya yordamdan koşulsuz olarak çıkar. RETURN hemen ve eksiksizdir ve herhangi bir noktada bir yordamdan, toplu işlemden veya deyim bloğundan çıkmak için kullanılabilir. RETURN'den sonra gelen deyimler yürütülmedi.

Transact-SQL söz dizimi kuralları

Syntax

RETURN [ integer_expression ]   

Arguments

integer_expression
Döndürülen tamsayı değeridir. Saklı yordamlar, bir çağırma yordamına veya uygulamaya tamsayı değeri döndürebilir.

Dönüş Türleri

İsteğe bağlı olarak int döndürür.

Note

Aksi belirtilmediği sürece, tüm sistem saklı yordamları 0 değerini döndürür. Bu, başarıyı ve sıfır olmayan bir değerin başarısız olduğunu gösterir.

Remarks

Saklı yordamla kullanıldığında, RETURN null değer döndüremez. Bir yordam null değer döndürmeye çalışırsa (örneğin, NULL olduğunda @status RETURN @status kullanıldığında), bir uyarı iletisi oluşturulur ve 0 değeri döndürülür.

Dönüş durumu değeri, geçerli yordamı yürüten toplu işlem veya yordamdaki sonraki Transact-SQL deyimlerine eklenebilir, ancak aşağıdaki biçimde girilmelidir: EXECUTE @return_status = <procedure_name>.

Examples

A. Bir yordamdan dönme

Aşağıdaki örnekte, yürütürken findjobs parametre olarak hiçbir kullanıcı adı belirtilmediğinde, RETURN kullanıcının ekranına bir ileti gönderildikten sonra yordamın çıkmasına neden olup olmadığı gösterilmektedir. Bir kullanıcı adı belirtilirse, geçerli veritabanında bu kullanıcı tarafından oluşturulan tüm nesnelerin adları uygun sistem tablolarından alınır.

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. Durum kodları döndürülerek

Aşağıdaki örnek, belirtilen kişinin kimliğinin durumunu denetler. Eyalet Washington ()WA ise, durumu 1 döndürülür. Aksi takdirde, 2 başka bir koşul için döndürülür (için WA dışında StateProvince bir değer veya ContactID bir satırla eşleşmeyen bir değer).

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  

Aşağıdaki örneklerde yürütülmekte olan dönüş durumu gösterilmektedir checkstate. İlki Washington'daki bir kişiyi gösterir; İkincisi, Washington'da değil; ve üçüncüsü, geçerli olmayan bir kişi. Yerel değişkenin @return_status kullanılabilmesi için önce bildirilmesi gerekir.

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

Sonuç kümesi aşağıdadır.

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

Sorguyu yeniden yürüterek farklı bir kişi numarası belirtin.

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

Sonuç kümesi aşağıdadır.

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

Sorguyu yeniden yürüterek başka bir kişi numarası belirtin.

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

Sonuç kümesi aşağıdadır.

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

Ayrıca Bkz.

DEĞIŞEN PROSEDÜR (Transact-SQL)
PROCEDURE OLUŞTUR (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
ÇALIŞTIR (Transact-SQL)
SET @local_variable (Transact-SQL)
ATMA (Transact-SQL)