2017-05-04 83 views
0

當我爲腳本運行sqlcmd時,出現了此錯誤Sqlcmd: Error: Syntax error at line 2 near command '1'。當我檢查腳本我發現

INSERT INTO ABC.TableA(Name, Descr) VALUES ('Payment', N'$(162.66)') 

所以,當我在網上查,一些變量像$(xxxx)的SQLCMD。 我該如何解決這個問題?我正在使用Microsoft SQL。 謝謝。

+1

嘗試使用轉義字符'\ $'?因爲在執行sqlcmd時,$被認爲是變量替換 –

+0

@KannanKandasamy,謝謝你的回答。我試圖找到有關sqlcmd的轉義字符,並發現此鏈接http://www.robvanderwoude.com/escapechars.php但$不在列表中 – kevin

回答

1

沒有逃生角色,是的,這是愚蠢的。無論是如果你不使用變量來開始關閉變量替換的-x選項,或者分手的表達,使其不再解析爲一個變量替換:

INSERT INTO ABC.TableA(Name, Descr) VALUES ('Payment', N'$' + N'(162.66)') 

照顧的結果是仍然正確的類型,如果需要的話。

在極少數情況下,即使這是不可能的(因爲需要一個字符串文字和表情都不允許),你也來加入他們,而不是擊敗他們,和變量設置爲需要的值:

:setvar descr $(1.2) 
INSERT INTO ABC.TableA(Name, Descr) VALUES ('Payment', N'$(descr)') 

很明顯,這很讓人頭痛,所以很少有文字的要求。如果你需要多次這樣做,你最好用一個變量只爲$本身:

:setvar dollar $ 
INSERT INTO ABC.TableA(Name, Descr) VALUES ('Payment', N'$(dollar)(1.2)')