Nella versione RTP (11.0.1790.0), il -v
switch non appare nell'elenco dei parametri durante l'esecuzione di sqlcmd -?
. Apparentemente questa opzione non è supportata nella versione Linux dello strumento.
Per quanto ne so, neanche l'importazione dei valori dei parametri dalle variabili d'ambiente funziona.
Se hai bisogno di una soluzione alternativa, un modo potrebbe essere quello di concatenare uno o più :setvar
istruzioni con il file di testo contenente i comandi che si desidera eseguire in un nuovo file, quindi eseguire il nuovo file. Sulla base del tuo esempio:
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
Puoi esportare la variabile in Linux. Dopodiché non avrai bisogno di passare la variabile in sqlcmd
. Tuttavia, ho notato che dovrai modificare il tuo script sql e rimuovere :setvar
comando se non ha un valore predefinito.
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
Non è necessario passare variabili a sqlcmd. Seleziona automaticamente dalle variabili della tua shell:ad esempio
export param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql