使用带有以下参数的SQLCMD执行存储过程时:
. sqlcmd -S $sql_server -U $sql_usr -P $sql_pwd -d $sql_db -Q "EXEC $storedProc $dateVariable, $regionType, ALM.10.2.33.1" -V 1 -b
收到以下消息:
“。”附近的语法不正确。
如果我传递ALM_10_2_33_1而不是ALM.10.2.33.1,则存储过程将完美执行。
谢谢,
答案 0 :(得分:3)
使用单引号正确分隔参数
"EXEC $storedProc $dateVariable, $regionType, 'ALM.10.2.33.1'"
如果SQL Server没有包含某些字符(如.
),那么它允许指定(var)char参数而不使用分隔符。
您可以在MSDN
中看到它EXEC sp_addserver <'new_name\instancename'>, local
但是,如果您选中sp_addserver,@local
为varchar(10)
,则会提及'LOCAL'
作为所需值。
答案 1 :(得分:0)
尝试在方括号中包装ALM.10.2.33.1:
[ALM.10.2.33.1]