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 回答