いくつかの変数を使用する必要があるSQLスクリプトを再利用できるようにしています。パス内のSQLCMD変数
私はstart.sqlスクリプトでsqlcmdの
sqlcmd -S <SERVER> -v PROJECT="<PROJECTNAME>" -i .\start.sql
でSQLスクリプトを実行バットスクリプトを持って、私はこのような別のSQLスクリプトを実行します。
:r .\<PROJECTNAME>\init.sql
だから私はハードコードされています変数の値は完全に機能します。変数自体を使用したいのですが、それを動作させることはできません。
:r .\$(PROJECT)\init.sql
最後の行は、私がうまくいくと思ったものです。私はこれを行うことによって、変数PROJECTの値をテストしました:
PRINT '$(PROJECT)'
それは私に変数の値を与えます。
誰でも私のフォルダ内のスクリプトを実行する変数を使用して私を助けることができます。
ありがとうございます。
EDIT: PRINT $(PROJECT)は、次のエラーメッセージを表示しました。このコンテキストでは名前「XXX」は使用できません。有効な式は、定数、定数式、および(一部のコンテキストでは)変数です。列名は使用できません。
XXX =変数の値。
'PRINT $(PROJECT)'(一重引用符なし)を使用するとどうなりますか? – artm
あなたはそれがうまくいかなかったことをどのように知っていますか?エラーメッセージが表示されましたか?それとも起こらないことが起こったのでしょうか?もしそうなら - 何? – BeanFrog
いいえ、それは、もし私が使っているとすれば:r。\ $(PROJECT)\ init.sqlそれはメッセージなしでスキップするだけです。しかし、$(PROJECT)を変数値に切り替えると、別のスクリプトが実行されます。 –