4

select '$(''test'')'SQL Management Studio 2008 でthis を実行すると、返されます$('test')

sqlcmd -S SERVER -E -d DATABASE -q "select $(''test'')"コマンドラインで実行すると返されますSqlcmd: Error: Syntax error at line 1 near command '''.

ドル記号を削除すると機能します。「$」は特殊文字ですか?

これは sqlcmd のバグですか? スクリプトを変更して目的の結果を得るにはどうすればよいですか。

4

2 に答える 2

15

はい、$(id)SQLCMD には特別なセマンティクスがあります。これは変数置換です。次のようなコマンドを実行できます。

sqlcmd /E /S . /v variable=MyTable /Q "select * from $(variable)"

これは MyTable から選択されます。ご想像のとおり/v、変数を定義するためのスイッチです。一方、SSMS は、既定では、SQL の変数置換を解釈しません。SSMSでこれ実行するには、[SQLCMD モードでクエリ ウィンドウを開く] オプションをオンにします。

モードの詳細については、スクリプト変数での sqlcmd の使用を参照してください

于 2010-03-17T18:45:49.820 に答える
0

実行しようとしているコマンド:

select $('test')

有効じゃない。ご指摘のとおり、「$」を削除すると機能します。

select ('test')

あなたが本当に何をしようとしているのかわかりません.3つの"二重引用符文字があります.次のコマンドを試してみてください:

select '$(test)'

これは次のようになります。

sqlcmd -S SERVER -E -d DATABASE -q "select ''$(test)''"
于 2010-03-17T18:38:32.643 に答える