當我在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