0

SQLCMDモードを有効にしてSSMS 2008R2からこれを実行しています。

以下のコードで:

:SETVAR GREETING "HELLO"
:SETVAR SALUTATION $(GREETING)

SELECT '$(GREETING)'
SELECT '$(SALUTATION)'

結果には次のように表示されます。

HELLO
$(GREETING)

私は見たいと思っていました:

HELLO
HELLO

別のスクリプト変数の割り当てにスクリプト変数を含める方法はありますか? もしそうなら、構文は何ですか?

4

2 に答える 2

2

:SETVAR の変数置換は機能しません。この場合は単なるトークン置換であるためです。

次のように、期待する動作をシミュレートできます。

:SETVAR GREETING "HELLO"

DECLARE @salutation VARCHAR(5) = $(GREETING);
SELECT @salutation;

よろしく。

于 2012-11-12T21:50:25.447 に答える
1

必要に応じて、反対のこともできます。

DECLARE @firstVar VARCHAR(30) = 'theUltimateValue';

:setvar secondValue @firstVar

select $(secondValue) as whatIReallyWant

戻り値

whatIReallyWant
------------------------------
theUltimateValue
于 2014-03-12T23:54:02.323 に答える