我正在启用SQLCMD模式的SSMS 2008R2上运行它。
使用以下代码:
:SETVAR GREETING "HELLO"
:SETVAR SALUTATION $(GREETING)
SELECT '$(GREETING)'
SELECT '$(SALUTATION)'
我在结果中看到以下内容:
HELLO
$(GREETING)
我希望看到:
HELLO
HELLO
有没有办法在另一个脚本变量的赋值中使用脚本变量?如果是这样,语法是什么?
答案 0 :(得分:2)
变量替换:SETVAR不起作用,因为在这种情况下它只是一个令牌替换。
您可以模拟您期望的行为:
:SETVAR GREETING "HELLO"
DECLARE @salutation VARCHAR(5) = $(GREETING);
SELECT @salutation;
问候。
答案 1 :(得分:1)
如果您需要,您也可以这样做:
DECLARE @firstVar VARCHAR(30) = 'theUltimateValue';
:setvar secondValue @firstVar
select $(secondValue) as whatIReallyWant
返回
whatIReallyWant
------------------------------
theUltimateValue