SQLServer2005のクエリエディタには SQLCMD モードというものがある。
これはクエリエディタ内に SQL文以外の処理として、
例えば『!! EXEコマンド』が実行できたり
『:r SQLファイル名』で SQLファイルを読み込み実行なんてことができる。
(オラクルの PLSQLでいうところの 『@』コマンドがようやく実装されたようなものだ)
ただし、このSQLスクリプトの読み込み実行の自動化ができるはずの『:r』というのが、
最も使いたいのにすこぶる調子が悪い。
実行中に ManagementStudio ごと落ちたりすることがたびたびあるのだ。
(しかも理由はまったくわからないときたもんだ)
何度 MSへ通知するボタンを押したことか・・・。
ということで、 コマンドライン用として用意されている“SQLCMDを実行する”sqlcmd コマンドを『!!』で呼び出して
-- SQLCMDモードにして実行
:setvar sqlpath C:\prj\sql
:setvar database prjDB
:setvar sqlpath C:\prj\sql
:setvar database prjDB
!!sqlcmd -E -d $(database) -i $(sqlpath)\Table.sql
!!sqlcmd -E -d $(database) -i $(sqlpath)\Work.sql
!!sqlcmd -E -d $(database) -i $(sqlpath)\Funcs.sql
!!sqlcmd -E -d $(database) -i $(sqlpath)\Procs1.sql
!!sqlcmd -E -d $(database) -i $(sqlpath)\Procs2.sql
!!sqlcmd -E -d $(database) -i $(sqlpath)\Procs3.sql
とかやって、回避している。
なんだかなぁ・・・。