【问题标题】:Is a return value of 0 always a success in stored procedures?返回值 0 在存储过程中总是成功吗?
【发布时间】:2011-05-17 17:30:21
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

不,你可以自己退货

例子

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

现在让我们在没有返回语句的情况下再做一次

CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

最好使用output parameter 传回状态和/或消息

【讨论】:

  • 返回值6是怎么回事?结果显示 - Msg 8134, Level 16, State 1, Procedure pr_test2, Line 3 除以零错误。 (1 行受影响)
【解决方案2】:

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

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

您能否更具体地说明您正在查看的内容?

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      相关资源
      最近更新 更多