2011-05-17 66 views
11

如果一個存儲過程返回一個零值,這是否意味着它已成功運行?我使用MS SQL Server 2008的返回值0總是在存儲過程中成功嗎?

+1

不知道你的問題是什麼。如果您可以編寫SP並選擇返回值,是不是答案「否」? – dkretz 2011-05-17 17:39:55

+0

有關Return語句的相關信息可能也有幫助:http://stackoverflow.com/questions/2578536/msdn-about-stored-procedure-default-return-value – TheEmirOfGroofunkistan 2014-12-18 16:36:54

+0

有關Store Procedure Return的更多詳細信息,可以閱讀這些文章在MSDN上https://msdn.microsoft.com/en-us/library/ms188655.aspx和https://msdn.microsoft.com/en-us/library/ms174998.aspx – 2015-09-01 12:36:42

回答

11

沒有,你可以返回自己的東西

例如

CREATE PROC pr_test AS 
SELECT 1/0 

RETURN 0 
GO 

現在運行它

DECLARE @i INT 
exec @i = pr_test 

SELECT @i -- will be 0 

DROP PROC pr_test 

現在讓我們再做一次沒有return語句

CREATE PROC pr_test2 AS 
SELECT 1/0 

GO 

DECLARE @i INT 
exec @i = pr_test2 

SELECT @i -- will be - 6 

最好使用output parameter傳回的狀態和或消息

+1

返回值6如何?並且結果表示 - 消息8134,級別16,狀態1,過程pr_test2,行3 除以零遇到的錯誤。 (1 row(s)affected) – Mahesh 2016-06-07 14:40:00

5

可以使用Return字返回從存儲過程任何整數值。這意味着零並不意味着存儲過程已成功執行。

5

@@ ERROR返回值「零」表示您的過程完成沒有任何錯誤。

當然,這並不意味着它沒有你想要的它...

你能具體談談你在看什麼呢?