【问题标题】:Stored Procedure Return Value to Fail SQL JobSQL 作业失败的存储过程返回值
【发布时间】:2011-11-09 06:18:14
【问题描述】:

我有一个存储过程,它是 SQL 作业的第一步。 SP 比较 2 个表中的日期,如果它们相等,则 SQL 作业可以继续,但如果它们不是,我需要从 SP 返回值,这会导致 SQL 作业触发它的失败操作。

最好的方法是什么?是使用 RAISERROR 语句还是仅返回 -99 之类的值?

似乎是一个很明显的问题,但我之前从未想过。

【问题讨论】:

标签: sql sql-server stored-procedures return-value sql-server-agent


【解决方案1】:

随心所欲。您可以使用 try/catch 和 raiserror。如果需要,这也可以让您将错误写入事件日志。

通常,我只使用执行返回的 IF 语句,然后继续执行其余代码。

不过,我认为这是一个偏好/要求的问题。两者都可以完成工作。

【讨论】:

  • 感谢您的回复。当您说您将使用执行返回的 IF 语句时。您会从 SP 中返回什么错误或仅返回 -999 之类的值?
  • 视情况而定。您可以使用 RETURN 返回值或使用输出参数。要么工作。同样,我认为这是一个偏好问题。只要你的方法与你的方法一致,就可以了。
【解决方案2】:

在我看来,最佳实践方法是:

  1. 返回位 1/0(真/假)的函数
  2. 存储的过程输出参数

proc返回值是用来测试proc本身的成功或失败,通常0代表成功,有错误时一些其他错误号

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多