• 締切済み

SQLServerユーティリティについて

毎度お世話になっております。今回もよろしくお願いいたします。 環境:WindowsServer2003、SQLServer2000 インデックス再構築を行うバッチファイルを作成しているのですが、 エラーコード、エラーメッセージの出力方法がよくわかりません。 以下のような書き方をしてみたのですが返り値は-1073741515と なっており、ユーティリティのエラーなのかコマンドプロンプトの エラーなのかわかりません。 "\\jdn-svr\Binn\sqlmaint" -S JDN-SVR -U acdb -P acdb -D Support -RebldIdx 100 @echo ERRORLEVEL(DB最適化処理開始[%DBNAME%])=%ERRORLEVEL% 目的としてはユーティリティのエラー原因が調査可能なログにすることです。 どなたかご教授よろしくお願いいたします。

みんなの回答

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

直接コマンド叩ける環境ではないので何とも言えないですが コマンドの末尾に > [ファイル名] などと付加して テキストでメッセージを吐かせて それを find コマンドなどでエラー文字列を検出させたりしてはどうでしょうか? "\\jdn-svr\Binn\sqlmaint" -S JDN-SVR -U acdb -P acdb -D Support -RebldIdx 100 > log.txt

E-HR33
質問者

お礼

ご返答ありがとうございます。 調査を進めた結果、サーバ側においてあるバッチファイルを直接 実行すると正常に実行され、PC端末からネットワーク経由で実行 するとエラー(ユーティリティが実行できない)になります。 ディレクトリを共有化するなどの設定は出来ているので何が問題に なっているのかがわかりません。 どなたかご教授お願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルからVBのEXEの戻り値

    いつもお世話になっています。 タイトルの通りなのですが、下記のようなバッチファイルからexeを起動し、exeがエラー終了した場合などに バッチファイルのERRORLEVELにエラーデータ(1)を入れたいのですが それを設定するのはいったいどうやったりいいのかがさっぱりでして…。f(- -; @echo off SETLOCAL call Project1.exe %ERRORLEVEL% echo %ERRORLEVEL% pause exeでのエラーが発生するタイミングなどは特に指定はないので、戻り値の設定の仕方を教えていただきたいです。 言葉足らずや説明不足など補足要求もお待ちしています。 お願いいたします。

  • ERRORLEVELの使い方

    ERRORLEVELの使い方について質問させて頂きます。 echo Start cmd /c test1.bat if %ERRORLEVEL% neq 0 echo 1>mylog.txt else echo 2> mylog.txt exit rem test1.batの内容は、下記のようなもの rem xxx.exe 環境変数 %ERRORLEVEL%は、DOSプロンプトであれ、 チャイルドプロセス test1.bat であれ、とにかく エラーを保持するとのことですが、 上記のスクリプトが、どんな時でも、本当に正しく動くのか、心配です。 どうせ、ERRORLEVELをみて、何がしかの処理をするなら、 チャイルドプロセスの中で、 xxx.exeの次で、記述すべきではないかと考えます。 はたまた、別の世界(このDOSプロンプト、及びそのチャイルドプロセス以外)での エラーは、このERRORLEVELには、影響しないのでしょうか? さしあたり、自分で実験をしてみて、上記のバッチ、或いは、チャイルドプロセスにて記述 いずれも、動作は、期待通りでした。しかし、だからといって、どんな時でも、 期待通りに動くのかは、不明です。   ERRORLEVELは、エラーを発生させるルーチンの直下で評価すべきであり   そのルーチンがチャイルドプロセスであれば、チャイルドプロセスの中で処理すべき。   (cmd /cで戻って、ERRORLEVELを評価するのは、正しくない) ただ、これに拘ると、スクリプトが分散されてしまい、見通しが悪くなってしまいます。 宜しく、サジェスチョンをお願い申し上げます。

  • Javacは、コマンドラインで実行する際、エラーナンバーを返しますか?

    現在、バッチファイルを作っていて、「Javacでコンパイルしてエラーがないと作成されたclassファイルを実行して、エラーがあったらバッチ処理を終了する」というバッチファイルを作成しようとおもっています。 バッチファイルでの条件分岐は if ERRORLEVEL構文で処理しようかと思っているんですが、そもそもjavacコマンドはERRORLEVEL変数に入れるようなエラーナンバーをコマンドプロンプトに返してくれるのかとおもいまして。。 分かる方は回答よろしくお願いします。

    • ベストアンサー
    • Java
  • SQLServer2005Expressでアタッチ出来ない

    いつも仕事に役立つ情報をありがとうございます。 表題の件ですが、PCの入れ替えに伴い 前PCのSQLServer2005Expressにて稼動していたDbを 移行しようとした際に、デタッチ/アタッチでやろうとしたんですが 下記エラーが発生してアタッチ出来ない事象が発生してしまいました。 同様のエラーを克服した経験をお持ちの方からのアドバイスを お願いします。 「エラーメッセージ」 ------------------------------ サーバー 'D869\SQLEXPRESS' のデータベースのアタッチに失敗しました。 (Microsoft.SqlServer.Express.Smo) Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.Express.ConnectionInfo) データベース "Asprova" を更新できませんでした。データベースが読み取り専用です。 (Microsoft SQL Server、エラー: 3906) ------------------------------

  • お世話になってます

    お世話になってます コマンドプロンプト&VB.NET 2003 で質問です コマンドプロンプトからVB.NETのコンソールアプリケーションで作成したバッチを呼び出し、VB.NETで設定した値をコマンドプロンプトで使用したいと思っています 最初、.NETの「System.Environment.ExitCode」を使い、その後コマンドプロンプトで作成した変数(例えばCODE_A)に入れてERRORLEVELに"0"をセットしなおして後続バッチを流しましたが、ERRORLEVELが正常にセットされなく(エラーが起こっても0のまま)なってしまいました なので、ExitCodeを使わずに、VB.NET等で、自分で作った変数に値をいれ、それをそのままコマンドプロンプトにも使用したいのですが・・・可能なのでしょうか? それとも、ERRORLEVELをSET 以外の方法で"0"に戻す方法があるのでしょうか 宜しくお願いします

  • windowsXPでのバッチファイル作成について

    windowsXPでのバッチファイル作成について質問させてください。ネットワーク機器の疎通確認をするよう以下を以下を作成しました。 <bat1> for /L %%i in (1,1,254) do ( ping -w 50 -n 1 192.168.1.%%i echo 192.168.1.%%i %errorlevel% ) 結果、正常応答とタイムアウトする機器があるのですが、errorlevelが全て0で返ってきてしまいます。 しかし・・・ <bat2> ping -w 50 -n 1 192.168.1.1 echo 192.168.1.1 %errorlevel% とした場合、タイムアウトした場合errorlevelは期待どおり1となります。これはなぜでしょうか。bat1の記述がおかしいのでしょうか。 また、本来はerrorlevelではなくタイムアウトやルータからのエラーなど、応答によって後の処理やエラー画面を変えたいのですが、どのように作るのが良いでしょうか。素人質問で申し訳ありませんが、よろしくお願い致します。

  • 実行結果を戻り値で取得したい

    MS-DOSバッチの実行結果を文字列で取得したいです。 イメージ例としては、下記のようなバッチ2つがあり、 バッチAを起動します。そうすると実行結果の戻り値として 「TEST」という文字列が取得できたら良いです。  ※下記例では「ERRORLEVEL」に入っているようなイメージです。 しかしながら、ERRORLELVEに格納できるのは数値のみの為、 エラーになってしまいます。 どうすれば、実行結果を戻り値で取得できるでしょうか? お手数ですが、MS-DOSで不可能な場合、VBScriptやWSHでも かまいませんので、処理をキックしてその戻り値を文字列で取得する方法を お教えください。お願いいたします。 -------------------------------- 例 【バッチA】 call バッチB echo %ERRORLEVEL% 【バッチB】 exit /b "TEST" -------------------------------- と実行し

  • Virtual PCバッチ起動

    ping で応答しなかったら、バーチャルPCの起動させるというバッチプログラムを 作成しました。しかし、ログオンをして、手動でこのバッチファイルを 開くと動くのですが、タスクスケジューラにのせて実行させても動き ません。素人で申し訳ありませんが、なにがいけないものかご教示 いただけますでしょうか。 --------------------------------------------------- @echo off ping -w 1 -n 1 192.168.0.12 if errorlevel 1 goto error goto END :error "C:\Users\XXXXX\Virtual Machines\XXXXXX1.vmcx" :END ---------------------------------------------------

  • バッチ処理について

    お世話になります。 バッチファイルを作成して、サーバー間でファイルのコピーを行おうと思ってます。 サーバーA:win2003server standerdEditon サーバーB:win2003server standerdEditon サーバーC:win2003server R2 standerdEditon(ServicePack1) A、Bからnet useコマンドでCをマウントしてます A→Cのコピーは大丈夫なのですが、 B→Cでは頻繁にnet useコマンドで失敗します。 サーバーBのバッチファイル if not exist P:\ net use P: \\serverC\test >> log.txt if %ERRORLEVEL% neq 0 echo エラー発生 ERRORLEVEL=%ERRORLEVEL% >> log.txt &goto END if ERRORLEVEL 0 echo 正常終了 >> log.txt のようにしているのですが、エラーなのに、 「エラー発生」がログに出ずに終了してます。 「正常終了」も 「エラー発生」もログに出ないということは、if文で評価されてないように 思うのですが、&gotoで次の処理を飛ばしているので、終了のログは出てます。 説明が不足しておりましたら追加させていただきますので、 なぜこの現象が発生するのかお知恵をお貸しいただければ幸いです。 よろしくお願いします。

  • ERRORLEVELが-100になるパターン

    現在初めてバッチを作成していますが、 その中で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'はログに表示されています。