Select 变量动态值
Select variable dynamic value
(我已经声明了变量)
我有以下查询
select @VCOUNT = count(1) from @TMP_NAME||'TAB1'||@TIME
出现以下错误
Incorrect syntax near '@TMP_NAME'
tmp_name和时间是动态的。
查询是这样的并且有效:
select @VCOUNT = count(1) from tab1
如何向 select 变量添加动态?
将整个 select 语句转换为包含 Sql 的字符串,例如@Sql
select @Sql = 'select @VCOUNT = count(1) from ' + @TMP_NAME + 'TAB1' + @TIME
然后使用 EXEC 进行动态 sql:
EXEC(@Sql)
@VCOUNT 将在动态 sql 内设置,并将在动态语句外可用。
由于它是动态的,如果它在 SP 中,您将无法享受此语句的存储查询计划的好处,但这可能并不重要,具体取决于情况。
(我已经声明了变量)
我有以下查询
select @VCOUNT = count(1) from @TMP_NAME||'TAB1'||@TIME
出现以下错误
Incorrect syntax near '@TMP_NAME'
tmp_name和时间是动态的。
查询是这样的并且有效:
select @VCOUNT = count(1) from tab1
如何向 select 变量添加动态?
将整个 select 语句转换为包含 Sql 的字符串,例如@Sql
select @Sql = 'select @VCOUNT = count(1) from ' + @TMP_NAME + 'TAB1' + @TIME
然后使用 EXEC 进行动态 sql:
EXEC(@Sql)
@VCOUNT 将在动态 sql 内设置,并将在动态语句外可用。
由于它是动态的,如果它在 SP 中,您将无法享受此语句的存储查询计划的好处,但这可能并不重要,具体取决于情况。