Dans la version RTP (11.0.1790.0), le -v
switch n'apparaît pas dans la liste des paramètres lors de l'exécution de sqlcmd -?
. Apparemment, cette option n'est pas prise en charge sous la version Linux de l'outil.
Autant que je sache, l'importation de valeurs de paramètres à partir de variables d'environnement ne fonctionne pas non plus.
Si vous avez besoin d'une solution de contournement, une façon serait de concaténer un ou plusieurs :setvar
instructions avec le fichier texte contenant les commandes que vous souhaitez exécuter dans un nouveau fichier, puis exécutez le nouveau fichier. D'après votre exemple :
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
Vous pouvez exporter la variable sous Linux. Après cela, vous n'aurez plus besoin de passer la variable dans sqlcmd
. Cependant, j'ai remarqué que vous devrez modifier votre script sql et supprimer le :setvar
commande si elle n'a pas de valeur par défaut.
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
Vous n'avez pas besoin de passer des variables à sqlcmd. Il sélectionne automatiquement vos variables shell :par exemple
export param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql