En la versión RTP (11.0.1790.0), el -v
switch no aparece en la lista de parámetros al ejecutar sqlcmd -?
. Aparentemente, esta opción no es compatible con la versión de Linux de la herramienta.
Por lo que sé, la importación de valores de parámetros de variables de entorno tampoco funciona.
Si necesita una solución alternativa, una forma sería concatenar uno o más :setvar
declaraciones con el archivo de texto que contiene los comandos que desea ejecutar en un nuevo archivo, luego ejecute el nuevo archivo. Basado en tu ejemplo:
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
Puede exportar la variable en Linux. Después de eso, no necesitará pasar la variable en sqlcmd
. Sin embargo, noté que necesitará cambiar su script sql y eliminar el :setvar
comando si no tiene un valor predeterminado.
export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql
:setvar dbName --remove this line
USE [$(dbName)]
GO
No necesita pasar variables a sqlcmd. Selecciona automáticamente de las variables de su shell:por ejemplo,
exportar param1=DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql