• 締切済み

BCPコマンドのリダイレクト値が空になる

BCPコマンドのリダイレクト値が空になる 現在、VB.NET2005で開発を行っております。 バッチファイルにて、SQLServerExpressからCSVを作成しているのですが、 リダイレクトの出力結果をログファイルに出力する際 結果が空になる場合があるのです。 SQLExpressを止める等、強制的にエラーを起こしてみたりしたのですが その場合は接続エラーがでますし、正常の場合は「コピーを開始中です...以下略」 と何かしらのメッセージが出力されます。 ログが空になるというのはどういう場合が考えられるのでしょうか。 お分かりの方がおられましたらお力をお貸しください。 お願いします。 バッチの中身は ****************************** BCP "SELECT * FROM TABLE" queryout D:\AAA.csv -c -t , -r \n -S localhost\SQLEXPRESS -U XXX -P XXX > D:\AAA.log ****************************** こんな感じです。

みんなの回答

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

手元にMSSQLが無いので推測です。 強制的にエラーにすると接続エラーが出る、との事ですが、以下の可能性が考えられます。 DOSのコマンドの多くはエラーの場合、正常時とエラー時で出力される標準出力が違います。 つまり、接続エラーと正常メッセージは別の領域に吐かれている、と言う事です。 それを両方同じにするなら > D:\AAA.log ↓ > D:\AAA.log 2>&1 とする必要があります。 最後のおまじないは、「エラー時にも正常の標準出力として表示せよ」と言う意味です。 (Unix/LinuxでもWindowsでも同じ)

1990462_R
質問者

お礼

回答ありがとうございます。 やはり何かしらのエラーが出てるけど 標準ログには入っていいないと言うことなんでしょうかね。 DBとめたり、テーブルリネームしても 標準ログに入ってくるので、上記の書き方をしていなかったんですが 逆にどういう処理をしたら標準ではないエラーログに出力されるんでしょう。。。

関連するQ&A