プロが教える店舗&オフィスのセキュリティ対策術

現在初めてバッチを作成していますが、
その中でosqlでSPを実行した後にERRORLEVELを取得しています。

SPの中でエラーが発生した場合も、発生しない場合も、

ECHO %ERRORLEVEL% のコマンドを実行すると -100 が返ってきます。
ERRORLEVELは0~255の値が返ってくるという認識でしたので、
どのパターンでそうなるのか全くわかりません。
インターネットでも調べては見ましたがわかりませんでした。

とても初歩的な質問かもしれませんが、回答をいただければうれしいです。


--TEST.bat
osql /U [ユーザ] /P [パスワード] /d [データベース名] /S [サーバー名] /q "exit([SP名])" >> test.log

ECHO ERRORLEVEL = %ERRORLEVEL%>> test.log

-- SPのソース
CREATE PROCEDURE SP_TEST AS
PRINT 'TEST'
PRINT 'aa'
--print 10/0
GO

※『print 10/0』をコメントにしても、しなくても -100でした。
 また、'TEST'と'aa'はログに表示されています。

A 回答 (1件)

> ECHO %ERRORLEVEL% のコマンドを実行すると -100 が返ってきます。



参考URLによると
「戻り値を選択する前に、エラーが発生した。 」
ということになりますかねぇ。

> ERRORLEVELは0~255の値が返ってくるという認識でしたので、
MS-DOS時代ってことですかねぇ。。。
OSのバージョンによって取りうる値の範囲は違います。
ちゃんと調べたわけではないので、正確な範囲は不明です。

参考URL:http://msdn2.microsoft.com/ja-jp/library/ms16280 …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

何パターンか試してみましたが、
何も返さない(SELCT文等がない)SPを実行すると
発生することがわかりました。

まだ完璧なパターンはつかめていませんが、
ひとまず戻り値を戻せ!とosqlに怒られているんでしょうか・・・。

助かりました、ありがとうございます。

お礼日時:2007/06/04 11:38

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