Dalam versi RTP (11.0.1790.0), -v
switch tidak muncul dalam daftar parameter saat menjalankan sqlcmd -?
. Rupanya opsi ini tidak didukung di bawah versi Linux dari alat tersebut.
Sejauh yang saya tahu, mengimpor nilai parameter dari variabel lingkungan juga tidak berfungsi.
Jika Anda memerlukan solusi, salah satu caranya adalah menggabungkan satu atau lebih :setvar
pernyataan dengan file teks yang berisi perintah yang ingin Anda jalankan ke dalam file baru, lalu jalankan file baru tersebut. Berdasarkan contoh Anda:
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
Anda dapat mengekspor variabel di linux. Setelah itu Anda tidak perlu meneruskan variabel di sqlcmd
. Namun, saya perhatikan Anda perlu mengubah skrip sql Anda dan menghapus :setvar
perintah jika tidak memiliki nilai default.
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
Anda tidak perlu meneruskan variabel ke sqlcmd. Ini secara otomatis mengambil dari variabel shell Anda:mis.
ekspor param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql