当我在SQL管理运行这个select '$(''test'')'
2008工作室返回$('test')
SQLCMD语法错误
当我在命令行中运行sqlcmd -S SERVER -E -d DATABASE -q "select $(''test'')"
返回Sqlcmd: Error: Syntax error at line 1 near command '''.
如果我删除它的工作美元符号。 “$”是一个特殊字符吗?
这是一个sqlcmd错误?我如何更改脚本以获得所需的结果。
当我在SQL管理运行这个select '$(''test'')'
2008工作室返回$('test')
SQLCMD语法错误
当我在命令行中运行sqlcmd -S SERVER -E -d DATABASE -q "select $(''test'')"
返回Sqlcmd: Error: Syntax error at line 1 near command '''.
如果我删除它的工作美元符号。 “$”是一个特殊字符吗?
这是一个sqlcmd错误?我如何更改脚本以获得所需的结果。
是,$(id)
在SQLCMD特殊的语义:它是一个变量代换。您可以运行如下命令:
sqlcmd /E /S . /v variable=MyTable /Q "select * from $(variable)"
并且这将从MyTable中选择。正如你猜测的那样,/v
是定义变量的开关。另一方面,SSMS默认情况下不会解释变量替换的SQL。 SSMS 可以通过选中“在SQLCMD模式下打开查询窗口”选项来使执行此操作。
有关模式的详细信息,请参阅Using sqlcmd with Scripting Variables。
命令你正在尝试运行:
select $('test')
无效。当你注意,当你删除“$”它的工作原理:
select ('test')
我不知道你真正想要做的,你有三个"
双引号字符,你可以尝试使用这个命令:
select '$(test)'
具体做法是:
sqlcmd -S SERVER -E -d DATABASE -q "select ''$(test)''"
我仍然对@KM感到困惑,你为什么要从'sqlcmd'向SQL Server发送'SELECT $(''test'')'而你发送'SELECT'$(''test' ')'来自SSMS。 – binki 2013-09-16 19:38:51
我不知道为什么这两个陈述是不同的那种方式。这是通过查询从表格发送javascript的遗留代码。我需要能够在命令行上通过脚本创建数据库,并且遇到了sqlcmd变量的问题。 – Troy 2013-10-01 12:23:07