选择变量动态值

时间:2015-08-21 11:18:13

标签: sql sybase sybase-ase

(我已经宣布了变量)

我有以下查询

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

给出以下错误

  

'@TMP_NAME'附近的语法不正确

tmp_name和时间是动态的。

查询是这样的,它起作用了:

select @VCOUNT = count(1) from tab1

如何为选择变量添加动态?

1 个答案:

答案 0 :(得分:3)

将整个select语句放入包含Sql的字符串中,例如@sql

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

然后使用EXEC进行动态sql:

EXEC(@Sql)

@VCOUNT将在动态sql中设置,并且在动态语句之外可用。

由于它是动态的,如果这个语句存在于SP中,你将无法获得存储查询计划的好处,但这可能并不重要,取决于它。