バッチ内からSQL発行して結果をどうこうする。
ヘッダとかは要らないのでいろいろパラメータ指定してる。
sqlcmd -S 【接続先インスタンス】 -d 【DB】 -U 【ユーザ】 -P 【パスワード】 -i TEST.sql -v myParam='%%a' -h -1 -b -s "," -W >> 結果.txt
-S, -d, -U, -Pあたりまでは接続情報。
たぶんテキスト化して外部から取り込みとかできるけどしてない。
-iはインプットファイル。
-vはインプットファイルに渡すパラメータを設定できる。
この場合は変数%%aをmyParamって名前で渡す。
SQLファイル側で$(myParam)と書いておくと、そのパラメータが入ってくる。
-hは、ヘッダとの間を何行空けるか。
-1を指定するとヘッダが出なくなる。
-bは、エラー時にERRORLEVELを返すようにする。(たぶん)
別に使わないなら要らない。
-sは、項目間のセパレータを指定。
-Wは、値の後ろの空白を削除する。
この二つはたいてい合わせて指定するものっぽい。
あとは結果を>>で出力。
なおsqlcmdとは関係ないが、>>だと追記。>だと上書き。
-oオプションで出力ファイルを指定することも可能。ただしこの場合は上書きオンリー。