例えばWindowsローカル環境のテストで、DB2のテーブルを毎回Drop&Createするような場合、DDLファイルを用意しておき、db2コマンドを立ち上げて「db2 -tvf DDLファイル名」と打ち込めばよい。
しかし毎回打ち込むのも面倒なので、db2コマンド起動&ファイル読み込みバッチファイルを用意しておき、ダブルクリックだけで実行する方法。
例えば、以下のようなテーブルDrop&Create用のDDLファイルがあったとする。
connect to データソース名 user ユーザー名 using パスワード;
drop table テーブル名;
create table テーブル名(
keycol char(10) not null
valcol char(10)
);
alter table テーブル名 add constraint pk名 primary key (keycol);
quit;
上記DDLファイルと同じ場所に、以下のバッチファイルを配置し、拡張子を除くファイル名を同一にする(例えば「aaa.ddl」の場合、「aaa.bat」とする)。
DDL実行バッチ
db2cmd /c db2 -tvf %~n0.ddl;
上記バッチファイルを実行すると、db2コマンドが立ち上がり、DDLが実行される。
このバッチファイルのいいところは、コピーしてファイル名をSQL・DDLファイルと同一にし、同じ場所に配置するだけで、バッチファイルの内容は書き変えることなく、SQLまたはDDLを実行できること。
なお、拡張子が.sqlのファイルを実行する場合は以下のようになる(拡張子がsqlになっただけ)。
SQL実行バッチ
db2cmd /c db2 -tvf %~n0.sql;
SQL・DDL実行後にコマンドウィンドウを消さずに目チェックしたい場合は、db2cmd のあとの /c を消せばよい。
SQL実行バッチ(実行後にウィンドウを閉じない)
db2cmd db2 -tvf %~n0.sql;
DDL実行バッチ(実行後にウィンドウを閉じない)
db2cmd db2 -tvf %~n0.ddl;
以上