如何在表中使用char值作为新表名

时间:2015-09-22 02:52:53

标签: sql macros

我有一个存储char值列表的表。我想使用该值作为我的新表名... 例如, 列tbl_name具有值: table01 TABLE02 table03

并且table01-table03是存储在我的数据库中的实际表。我怎样直接参考它?

对于这样的代码: 从table01中选择* 薪水> 1000 ;

是否可以将“table01”替换为一段代码? 谢谢!

2 个答案:

答案 0 :(得分:0)

declare @table_name varchar(25) = 'table01'
exec('select * from '+@table_name+' where salary > 1000')

答案 1 :(得分:0)

您可以使用动态查询。

 Declare @SqlQuery nvarchar(max)

Set @SqlQuery=’Select * from ’


// your logic here for getting table name

假设您将表名存储到名为@temp

的临时变量中

现在,将@SqlQuery变量附加为

@ SqlQuery= @SqlQuery+@temp +’  where salary>1000’

Finallt,执行您的查询:

Exec (@SqlQuery)