從查詢或過(guò)程中無(wú)條件退出。RETURN 即時(shí)且完全,可在任何時(shí)候用于從過(guò)程、批處理或語(yǔ)句塊中退出。不執(zhí)行位于 RETURN 之后的語(yǔ)句。
RETURN [ integer_expression ]
integer_expression
是返回的整型值。存儲(chǔ)過(guò)程可以給調(diào)用過(guò)程或應(yīng)用程序返回整型值。
可以選擇是否返回 int。
說(shuō)明 除非特別指明,所有系統(tǒng)存儲(chǔ)過(guò)程返回 0 值表示成功,返回非零值則表示失敗。
當(dāng)用于存儲(chǔ)過(guò)程時(shí),RETURN 不能返回空值。如果過(guò)程試圖返回空值(例如,使用 RETURN @status 且 @status 是 NULL),將生成警告信息并返回 0 值。
在執(zhí)行當(dāng)前過(guò)程的批處理或過(guò)程內(nèi),可以在后續(xù) Transact-SQL 語(yǔ)句中包含返回狀態(tài)值,但必須以下列格式輸入:
EXECUTE @return_status = procedure_name
說(shuō)明 Microsoft® SQL Server™ 2000 是將空字符串 (NULL) 解釋為單個(gè)空格還是真正的空字符串取決于兼容級(jí)別設(shè)置。如果兼容級(jí)別小于或等于 65,SQL Server 就將空字符串解釋為單個(gè)空格。如果兼容級(jí)別等于 70,則 SQL Server 將空字符串解釋為空字符串。有關(guān)更多信息,請(qǐng)參見(jiàn) sp_dbcmptlevel。
下例顯示如果在執(zhí)行 findjobs 時(shí)沒(méi)有給出用戶名作為參數(shù),RETURN 則將一條消息發(fā)送到用戶的屏幕上然后從過(guò)程中退出。如果給出用戶名,將從適當(dāng)?shù)南到y(tǒng)表中檢索由該用戶在當(dāng)前數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建的所有對(duì)象名。
CREATE PROCEDURE findjobs @nm sysname = NULL
AS
IF @nm IS NULL
BEGIN
PRINT 'You must give a username'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
下例檢查指定作者所在州的 ID。如果所在的州是加利福尼亞州 (CA),將返回狀態(tài)代碼 1。否則,對(duì)于任何其它情況(state 的值是 CA 以外的值或者 au_id 沒(méi)有匹配的行),將返回狀態(tài)代碼 2。
CREATE PROCEDURE checkstate @param varchar(11)
AS
IF (SELECT state FROM authors WHERE au_id = @param) = 'CA'RETURN 1
ELSE
RETURN 2
下例顯示從 checkstate 執(zhí)行中返回的狀態(tài)。第一個(gè)顯示的是在加利福尼亞州的作者;第二個(gè)顯示的是不在加利福尼亞州的作者,第三個(gè)顯示的是無(wú)效的作者。必須先聲明 @return_status 局部變量后才能使用它。
DECLARE @return_status int
EXEC @return_status = checkstate '172-32-1176'
SELECT 'Return Status' = @return_status
GO
下面是結(jié)果集:
Return Status
-------------
1
再執(zhí)行一次查詢,指定一個(gè)不同的作者編號(hào)。
DECLARE @return_status int
EXEC @return_status = checkstate '648-92-1872'
SELECT 'Return Status' = @return_status
GO
下面是結(jié)果集:
Return Status
-------------
2
再執(zhí)行一次查詢,指定另一個(gè)作者編號(hào)。
DECLARE @return_status int
EXEC @return_status = checkstate '12345678901'
SELECT 'Return Status' = @return_status
GO
下面是結(jié)果集:
Return Status
-------------
2
相關(guān)文章