(我已经宣布了变量)
我有以下查询
select @VCOUNT = count(1) from @TMP_NAME||'TAB1'||@TIME
给出以下错误
'@TMP_NAME'附近的语法不正确
tmp_name和时间是动态的。
查询是这样的,它起作用了:
select @VCOUNT = count(1) from tab1
如何为选择变量添加动态?
答案 0 :(得分:3)
将整个select语句放入包含Sql的字符串中,例如@sql
select @Sql = 'select @VCOUNT = count(1) from ' + @TMP_NAME + 'TAB1' + @TIME
然后使用EXEC进行动态sql:
EXEC(@Sql)
@VCOUNT将在动态sql中设置,并且在动态语句之外可用。
由于它是动态的,如果这个语句存在于SP中,你将无法获得存储查询计划的好处,但这可能并不重要,取决于它。