SQLジョブの最初のステップであるストアドプロシージャがあります。SPは2つのテーブルの日付を比較し、等しい場合はSQLジョブを続行できますが、そうでない場合は、SQLジョブが失敗時にトリガーするSPから値を返す必要があります。
これを行うための最良の方法は何ですか?RAISERRORステートメントを使用するのですか、それとも-99のような値を返すだけですか?
当たり前の質問のようですが、今まで考えたことはありませんでした。
SQLジョブの最初のステップであるストアドプロシージャがあります。SPは2つのテーブルの日付を比較し、等しい場合はSQLジョブを続行できますが、そうでない場合は、SQLジョブが失敗時にトリガーするSPから値を返す必要があります。
これを行うための最良の方法は何ですか?RAISERRORステートメントを使用するのですか、それとも-99のような値を返すだけですか?
当たり前の質問のようですが、今まで考えたことはありませんでした。
どちらの方法でも構いません。try/catch と raiserror を使用できます。これにより、必要に応じてイベント ログにもエラーを書き込むことができます。
通常、リターンを行う IF ステートメントを使用するだけで、それ以外の場合は残りのコードに進みます。
ただし、それは好み/要件の問題だと思います。どちらかが仕事を成し遂げるでしょう。
私の意見では、ベストプラクティスのアプローチは次のとおりです。
proc の戻り値は、proc 自体の成功または失敗をテストするために使用されることを意図しています。通常、成功の場合は 0 で、エラーが発生した場合はその他のエラー番号です。