我在启用 SQLCMD 模式的情况下从 SSMS 2008R2 运行它。
使用以下代码:
:SETVAR GREETING "HELLO"
:SETVAR SALUTATION $(GREETING)
SELECT '$(GREETING)'
SELECT '$(SALUTATION)'
我在结果中看到以下内容:
HELLO
$(GREETING)
我希望看到:
HELLO
HELLO
有没有办法在分配另一个脚本变量时有一个脚本变量?如果是这样,语法是什么?
我在启用 SQLCMD 模式的情况下从 SSMS 2008R2 运行它。
使用以下代码:
:SETVAR GREETING "HELLO"
:SETVAR SALUTATION $(GREETING)
SELECT '$(GREETING)'
SELECT '$(SALUTATION)'
我在结果中看到以下内容:
HELLO
$(GREETING)
我希望看到:
HELLO
HELLO
有没有办法在分配另一个脚本变量时有一个脚本变量?如果是这样,语法是什么?
:SETVAR 中的变量替换不起作用,因为在这种情况下它只是一个标记替换。
您可以像这样模拟您期望的行为:
:SETVAR GREETING "HELLO"
DECLARE @salutation VARCHAR(5) = $(GREETING);
SELECT @salutation;
问候。
如果需要,您也可以执行相反的操作:
DECLARE @firstVar VARCHAR(30) = 'theUltimateValue';
:setvar secondValue @firstVar
select $(secondValue) as whatIReallyWant
退货
whatIReallyWant
------------------------------
theUltimateValue