プロが教えるわが家の防犯対策術!

お世話になります。

SQL Server2000のストアドプロシージャでエラー処理を
行いたいと考えています。

理想としてはJavaのTry~catch構文のようなもの、
もしくはVBのエラーgoto文の様なものがあれば
いいなと思っています。

最終的には何かしらのエラーがあった場合、OSの
イベントログに、アラームを出したいと思っております。

このようなことが具体的に可能なのか、お教え下さい。
よろしくお願いします。

A 回答 (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エージェントを使用してジョブとして実行すれば、失敗時にイベントログへ出力することはジョブの設定で可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!