返回值0是否始终在存储过程中成功?

时间:2011-05-17 17:30:22

标签: sql-server sql-server-2008 stored-procedures

如果存储过程返回零值,那是否始终意味着它已成功运行?我正在使用MS SQL Server 2008。

3 个答案:

答案 0 :(得分: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)

@@ ERROR返回值“零”表示您的程序已完成且没有任何错误。

当然,这并不意味着它做了你想要的......

你能更具体地了解你在看什么吗?

答案 2 :(得分:5)

您可以使用Return字来返回存储过程中的任何整数值。这意味着零并不意味着存储过程已成功执行。