RTP バージョン (11.0.1790.0) では、-v
sqlcmd -?
の実行時に、パラメーターのリストに switch が表示されない .このオプションは、ツールの Linux バージョンではサポートされていないようです。
私の知る限り、環境変数からのパラメータ値のインポートも機能しません。
回避策が必要な場合は、1 つ以上の :setvar
を連結する方法があります。 ステートメントを、実行するコマンドを含むテキスト ファイルで新しいファイルに書き込んでから、新しいファイルを実行します。あなたの例に基づいて:
echo :setvar param1 DUMMYVALUE > param_input.sql
cat input.sql >> param_input.sql
sqlcmd -S server -d database -U user -P pass -i param_input.sql
Linuxで変数をエクスポートできます。その後、変数を sqlcmd
に渡す必要はありません .ただし、SQL スクリプトを変更して :setvar
を削除する必要があることに気付きました コマンドにデフォルト値がない場合。
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
変数を sqlcmd に渡す必要はありません。シェル変数から自動選択します:例:
export param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql