如果存储过程返回零值,那是否始终意味着它已成功运行?我正在使用MS SQL Server 2008。
答案 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
字来返回存储过程中的任何整数值。这意味着零并不意味着存储过程已成功执行。