2007.03.30

SQLServer2005の SQLCMD モード

SQLServer2005のクエリエディタには SQLCMD モードというものがある。
これはクエリエディタ内に SQL文以外の処理として、
例えば『!! EXEコマンド』が実行できたり
『:r SQLファイル名』で SQLファイルを読み込み実行なんてことができる。
(オラクルの PLSQLでいうところの 『@』コマンドがようやく実装されたようなものだ)

ただし、このSQLスクリプトの読み込み実行の自動化ができるはずの『:r』というのが、
最も使いたいのにすこぶる調子が悪い。
実行中に ManagementStudio ごと落ちたりすることがたびたびあるのだ。
(しかも理由はまったくわからないときたもんだ)
何度 MSへ通知するボタンを押したことか・・・。


ということで、 コマンドライン用として用意されている“SQLCMDを実行する”sqlcmd コマンドを『!!』で呼び出して

-- SQLCMDモードにして実行
: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

とかやって、回避している。
なんだかなぁ・・・。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ichikawa