$ sqlcmd中的转义字符
问题描述:
当我为脚本运行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。 谢谢。
答
没有逃生角色,是的,这是愚蠢的。无论是如果你不使用变量来开始关闭变量替换的-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)')
尝试使用转义字符'\ $'?因为在执行sqlcmd时,$被认为是变量替换 –
@KannanKandasamy,谢谢你的回答。我试图找到有关sqlcmd的转义字符,并发现此链接http://www.robvanderwoude.com/escapechars.php但$不在列表中 – kevin