The Wayback Machine - http://web.archive.org/web/20140105204312/http://msdn.microsoft.com:80/zh-tw/library/ms174998(v=sql.90).aspx
匯出 (0) 列印
全部展開
Expand Minimize
本主題尚未接受評分 - 為這個主題評分

RETURN (Transact-SQL)

無條件地結束查詢或程序。RETURN 是立即而完整的,您隨時可以利用它來結束程序、批次或陳述式區塊。系統不會執行 RETURN 之後的陳述式。

主題連結圖示 Transact-SQL 語法慣例


RETURN [ integer_expression ] 

integer_expression

這是傳回的整數值。預存程序可以向發出呼叫的程序或應用程式傳回一個整數值。

選擇性地傳回 int。

ms174998.note(zh-tw,SQL.90).gif附註:
除非另有說明,否則所有系統預存程序都會傳回 0 值。這表示成功,非零值表示失敗。

當搭配預存程序來使用時,RETURN 無法傳回 Null 值。如果程序嘗試傳回空值 (如當 @status 是 NULL 時,使用 RETURN @status),便會產生一則警告訊息,且會傳回 0 值。

您可以將傳回狀態值包括在批次或程序內執行目前程序的後續 Transact-SQL 陳述式之中,不過,您必須依照下列格式來輸入它:EXECUTE @return_status = <procedure_name>。

ms174998.note(zh-tw,SQL.90).gif附註:
相容性層級設定決定了要將空字串 (NULL) 解譯成單一空格或真正的空字串。如果相容性層級小於或等於 65,SQL Server 2005 會將空字串解譯為單一空格。如果相容性層級等於 70,SQL Server 會將空字串解譯為空字串。如需詳細資訊,請參閱<sp_dbcmptlevel (Transact-SQL)>。

A. 從程序傳回

下列範例會顯示當執行 findjobs 時,如果未在參數中指定任何使用者名稱,RETURN 會在訊息傳給使用者畫面之後,使程序結束。如果指定了使用者名稱,便會從適當的系統資料表中,擷取這位使用者在目前資料庫中所建立之所有物件的名稱。

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. 傳回狀態碼

下列範例會檢查指定連絡人之識別碼的州/省份。如果是華盛頓州 (WA),傳回的狀態就是 1。任何其他狀況 (StateProvince 值不是 WA,或 ContactID 沒有相符的資料列) 都會傳回 2。

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

下列範例會顯示執行 checkstate 的傳回狀態。首先顯示在華盛頓州的連絡人,其次顯示不在華盛頓州的連絡人,之後,顯示無效的連絡人。您必須先宣告 @return_status 本機變數,才能使用它。

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

以下為結果集: 

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

指定不同的連絡號碼來重新執行查詢。

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

以下為結果集: 

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

指定另一個連絡號碼來重新執行查詢。

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

以下為結果集: 

Return Status 
------------- 
2
本文對您有任何幫助嗎?
(剩餘 1500 個字元)

社群新增項目

新增
Image
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。