これを osql でファイルに出力するようオプションを指定して実行してみたところ、ある程度長い行になると行の途中で折り返されて出力されてしまいました。
OSQL -Usa -Psa -SSERVER1 -dDB1 -i"csvout.sql" -h-1 -n -b -o data.csvどうやら1行に出力できる文字数に制限があるようです。
そこで、-wオプションをつけてみました。
OSQL -Usa -Psa -SSERVER1 -dDB1 -i"csvout.sql" -h-1 -n -b -w8000 -o data.csvしかし、やはり折り返します。
最大255文字で折り返し、255文字以内に半角スペースが含まれている場合はそこで折り返したりしているようです。
そこで、osql を sqlcmd に置き換えて試してみました。
SQLCMD -Usa -Psa -SSERVER1 -dDB1 -i"csvout.sql" -h-1 -b -o data.csvすると、折り返されずに正常に出力することができました。
普通はこんなことをすることはないでしょうから、なかなか気付かない制限だとは思いますが、こういうこういう問題1つとっても、やはり下位互換性維持のために残されている機能にいつまでもすがりつかずに、後継機能を積極的に取り込むことが必要ですね^^;