2011-10-11 56 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]