- ベストアンサー
●SQL Server2000●ストアドプロシージャでエラー処理を行いたい
お世話になります。 SQL Server2000のストアドプロシージャでエラー処理を 行いたいと考えています。 理想としてはJavaのTry~catch構文のようなもの、 もしくはVBのエラーgoto文の様なものがあれば いいなと思っています。 最終的には何かしらのエラーがあった場合、OSの イベントログに、アラームを出したいと思っております。 このようなことが具体的に可能なのか、お教え下さい。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SQLを実行してエラーになると@@error変数にエラー番号が格納されます。これを利用してエラーハンドリングをします。 具体的には下のようになります begin trans SQL文1・・・ if @@error<>0 goto XXX SQL文2・・・ if @@error<>0 goto XXX commit return XXX: rollback xp_cmdshell ログ出力するexe return 上の下から2行目のxp_cmdshellはexeをバックグラウンドで実行するものなので、事前にイベントログへ出力するexeを作っておけばよいかと思います。 ただ、想像するにこれは定期的に自動で処理されるものかと思います。そのような場合はSQLエージェントを使用してジョブとして実行すれば、失敗時にイベントログへ出力することはジョブの設定で可能です。