2

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

做这个的最好方式是什么?是使用 RAISERROR 语句还是只返回一个像 -99 这样的值?

似乎是一个很明显的问题,但直到现在我才考虑过。

4

2 回答 2

1

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

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

不过,我认为这是一个偏好/要求的问题。要么完成工作。

于 2011-09-02T15:03:39.673 回答
0

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

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

Proc返回值用于测试proc本身的成功或失败,通常为0表示成功,其他错误号表示有错误

于 2012-03-26T19:30:32.273 回答