如何在表名上使用变量?

时间:2018-03-12 20:05:58

标签: sql sql-server

SET @tab = 'tableName'

SET @field1 = (SELECT field1 FROM '+@tab+' WHERE colName IS NULL)

我收到了这个错误:

  

必须声明表变量“@tab”。

我需要在@ field1

上设置结果

1 个答案:

答案 0 :(得分:0)

对于SQL Server数据库,使用EXECUTE sp_executesql运行您设置的动态sql。 (注意与你的帖子相比,引号的正确位置)。

SET @tab = 'tableName'
SET @field1 = 'SELECT field1 FROM ' + @tab + ' WHERE colName IS NULL'
EXECUTE sp_executesql @field1

但是,要保存返回值,您应该考虑定义OUTPUT,如下面的答案所示:https://stackoverflow.com/a/3840771/9392034