Share via


RETURN (Transact-SQL)

Bir sorgu veya yordamdan koşulsuz olarak çıkar. RETURN ifadesi hemen ve koşulsuz uygulanır ve bir yordamdan, toplu işlemden veya bir deyim bloğundan herhangi bir noktada çıkmak için kullanılabilir. RETURN'den sonra gelen deyimler çalıştırılmaz.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

RETURN [ integer_expression ] 

Bağımsız değişkenler

  • integer_expression
    Döndürülen tamsayı değeridir. Saklı yordamlar kendilerini çağıran yordamlara veya uygulamalara bir tamsayı değeri döndürebilir.

Dönüş Türleri

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

[!NOT]

Belgelerde aksi belirtilmedikçe tüm sistem saklı yordamları 0 değerini döndürür. Bu başarı durumunu, sıfır olmayan bir değer ise başarısızlık durumunu belirtir.

Açıklamalar

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

Döndürülen durum değeri, geçerli yordamı çalıştırmış toplu işteki veya yordamdaki sonraki Transact-SQL deyimlerine dahil edilebilir, ancak şu biçimde girilmesi gerekir: EXECUTE @return\_status = <procedure_name>.

Örnekler

A.Bir yordamdan dönme

Aşağıdaki örnek findjobs çalıştırıldığında parametre olarak hiçbir kullanıcı adı belirtilmezse, RETURN'ün, kullanıcı ekranına bir ileti gönderildikten sonra yordamdan çıkılmasına neden olduğunu göstermektedir. 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;

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ürme

Aşağıdaki örnek belirtilen bir kişinin kimliğinin durumunu denetlemektedir. Eyalet Washington (WA) ise, durum olarak 1 değeri döndürülür. Diğer durumlar (StateProvince için WA dışında bir değer veya herhangi bir satırla eşleşmeyen bir ContactID) için 2 değeri döndürülür.

USE AdventureWorks2012;
GO
CREATE PROCEDURE checkstate @param varchar(11)
AS
IF (SELECT StateProvince FROM Person.vAdditionalContactInfo WHERE ContactID = @param) = 'WA'
    RETURN 1
ELSE
    RETURN 2;
GO

USE AdventureWorks2012;
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 örnekler checkstate yordamını çalıştırmanın döndürdüğü durumu göstermektedir. Birinci örnek Washington'daki bir kişiyi; ikincisi Washington'da olmayan bir kişiyi; üçüncüsü ise geçerli olmayan bir kişiyi göstermektedir. @return\_status yerel değişkeni, kullanılmadan önce bildirilmelidir.

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

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

Sonuç kümesi buradadır.

Return Status

-------------

1

Sorguyu farklı bir kişi numarası belirterek yeniden çalıştırın.

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

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

Sonuç kümesi buradadır.

Return Status

-------------

2

Sorguyu başka bir kişi numarası belirterek yeniden çalıştırın.

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

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

Sonuç kümesi buradadır.

Return Status

-------------

2

Ayrıca bkz.

Başvuru

alter procedure (Transact-sql)

procedure (Transact-sql) oluştur

DECLARE @local\_variable (Transact-SQL)

execute (Transact-sql)

set @ local_variable (Transact-sql)