ドキュメント ( sqlcmd Utilitysqlcmd
) を読みましたが、の-v
パラメーターを期待どおりに動作させることができません。
次の SQL スクリプト (echo.sql) を想定します。
:setvar THE_PATH C:\Users\Craig\Desktop
PRINT 'THE_PATH: $(THE_PATH)'
:setvar THE_TOP 10
PRINT 'THE_TOP: $(THE_TOP)'
-v
引数を設定せずに PowerShell プロンプトで実行すると、次のようになります。
PS> sqlcmd -E -S 'server' -d 'database' -i '.\echo.sql'
THE_PATH: C:\Users\Craig\Desktop
THE_TOP: 10
数値変数 ( THE_TOP
) の設定は無視されます。
PS> sqlcmd -E -S 'server' -d 'database' -i '.\echo.sql' -v THE_TOP=5
PS> sqlcmd -E -S 'server' -d 'database' -i '.\echo.sql'
THE_PATH: C:\Users\Craig\Desktop
THE_TOP: 10
THE_TOP
inのデフォルト値を削除するecho.sql
と、パラメーターが無視されているという主張が強化されます。
:setvar THE_TOP
PRINT 'THE_TOP: $(THE_TOP)'
PS> sqlcmd -E -S 'server' -d 'database' -i '.\echo.sql' -v THE_TOP=5
THE_PATH: C:\Users\Craig\Desktop
THE_TOP: $(THE_TOP)
THE_PATH
パラメータを設定しようとすると、次のようになります。
PS> sqlcmd -E -S 'server' -d 'database' -i '.\echo.sql' -v THE_PATH="C:\path"
Sqlcmd: ':\path': Invalid argument. Enter '-?' for help.
正しい-v
構文は何ですか?