Ve verzi RTP (11.0.1790.0), -v
přepínač se neobjeví v seznamu parametrů při provádění sqlcmd -?
. Tato možnost zřejmě není podporována ve verzi nástroje pro Linux.
Pokud mohu říci, import hodnot parametrů z proměnných prostředí také nefunguje.
Pokud potřebujete řešení, jedním ze způsobů by bylo zřetězení jednoho nebo více :setvar
příkazy s textovým souborem obsahujícím příkazy, které chcete spustit, do nového souboru a poté spusťte nový soubor. Na základě vašeho příkladu:
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
Proměnnou můžete exportovat v linuxu. Poté již nebudete muset předávat proměnnou v sqlcmd
. Všiml jsem si však, že budete muset změnit svůj skript SQL a odstranit :setvar
příkaz, pokud nemá výchozí hodnotu.
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
Nemusíte předávat proměnné do sqlcmd. Automaticky vybírá z proměnných vašeho shellu:např.
export param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql