2011-10-11 28 views
1

当执行使用SQLCMD具有以下参数的存储过程:在接收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

你试过用'ALM.10.2.33.1''吗? – Marco

+0

点通常在SQL中用于引用对象...我假设这是T-SQL? – Ben

回答

3

单引号正确分隔参数

"EXEC $storedProc $dateVariable, $regionType, 'ALM.10.2.33.1'" 

SQL Server有怪癖,允许(VAR )如果字符参数不包含.等特定字符,则无需指定分隔符。

你可以看到它在MSDN

但如果你检查sp_addserver@localvarchar(10),并'LOCAL'被提及作为需要的价值。

0

尝试包装ALM.10.2.33.1在方括号:

[ALM.10.2.33.1]