2011-05-17 63 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返回值“零”表示您的过程完成没有任何错误。

当然,这并不意味着它没有你想要的它...

你能具体谈谈你在看什么呢?