当我在SQL Management Studio 2008中运行此select '$(''test'')'
时,它返回$('test')
当我在命令行上运行sqlcmd -S SERVER -E -d DATABASE -q "select $(''test'')"
时,它返回Sqlcmd: Error: Syntax error at line 1 near command '''.
如果我删除美元符号就行了。 “$”是一个特殊角色吗?
这是一个sqlcmd错误吗?如何更改脚本以获得所需的结果。
答案 0 :(得分:14)
是的,$(id)
在SQLCMD中有特殊的语义:它是一个变量替换。您可以运行以下命令:
sqlcmd /E /S . /v variable=MyTable /Q "select * from $(variable)"
这将从MyTable中选择。正如您所猜测的,/v
是定义变量的开关。另一方面,SSMS默认情况下不会将SQL解释为变量替换。通过选中“在SQLCMD模式下打开查询窗口”选项,可以使SSMS 成为。
有关模式的详细信息,请参阅Using sqlcmd with Scripting Variables。
答案 1 :(得分:0)
您尝试运行的命令:
select $('test')
无效。如您所知,当您删除“$”时,它可以工作:
select ('test')
我不确定你真正想做什么,你有三个"
双引号字符,你可以尝试使用这个命令:
select '$(test)'
将是:
sqlcmd -S SERVER -E -d DATABASE -q "select ''$(test)''"