複数SQLファイルを流すときはファイルごとsqlcmdコマンド書いてた
SQLファイルをまとめたフォルダを読み込んで、
ファイルごとにsqlcmdを実行するコマンドを吐き出すマクロを組んだりしてましたが、
コマンドプロンプトのtypeでSQLファイルをひとまとめにして、
それを流すだけで良かったんですね。
コマンドプロンプトのtypeでファイルをひとまとめにする
type まとめたsql置いたフォルダパス¥*.sql > マージ.sql
注意点
ただSQLファイルをひとまとめにする場合は要注意。
DBが複数あるサーバに対して扱う場合は、
テーブル、プロシージャ、関数作成などのSQLファイルはUSE句でDBを指定してあげるなど、SQLファイルに明示的にDB を指定しておく必要がある。
あと、ファイルの末尾を要注意。
末尾に改行を入れて、最終行がEOFのみにしておかないと、
まとめたSQLファイルが構文エラー起こす可能性が高い。
(末尾の文字と、次のファイルの先頭行がくっついてしまう。)
テキストデータのとりまとめにtypeは便利
typeコマンドは同じ形式でヘッダーがないcsvまとめるのに便利
type csv置いたフォルダパス¥*.csv > マージ.csv
ちなみにマージ.csvの場所は、
まとめる対象のフォルダと別にしないと、コマンドやり直したときにマージ.csvを読み込んでしまうので、注意。
それと[>]は出力リダイレクト記号。この記号の隣に書いたファイルに、結果を出力します。
※追記形式にすることもできます。
> 上書き、洗い替え
>> 追記
最初、typeの使い方がわからなくて、コマンドプロンプトでtype /?ってやったら、説明が少なくて泣きそうになった。
コマンドプロンプトって説明にムラがある気がする。
気のせいかな。