2015-08-21 93 views
0

(我已经声明的变量)选择变量动态值

我有以下查询

select @VCOUNT = count(1) from @TMP_NAME||'TAB1'||@TIME 

给下面的错误

附近有语法错误@TMP_NAME“

tmp_name和time是动态的。

查询是这样的,它的工作:

select @VCOUNT = count(1) from tab1 

如何添加动态选择变量?

回答

3

将整个select语句获取到包含Sql的字符串中,例如@sql

select @Sql = 'select @VCOUNT = count(1) from ' + @TMP_NAME + 'TAB1' + @TIME 

然后使用EXEC动态SQL:

EXEC(@Sql) 

@VCOUNT将动态SQL里面来设置,也可动态语句之外。

因为它是动态的,所以如果这个语句位于一个SP中,那么这个语句就不会有存储查询计划的好处,但这可能并不重要,这取决于它。

+0

安倍是正确的,你需要把它放入一个字符串。这是你的问题的答案。 – theweeknd

+0

感谢您的歉意,我昨天已经这样做了,它工作的很好,希望这个问题能够帮助未来的人们 – Moudiz