日期:2014-05-17  浏览次数:20442 次

已有一个表,这个表的表名当变量,用语句如果查?
已有一个表,这个表名为 table_123

直接查询

select * FROM table_123

但是我设置一个变量
declare @tt nvarchar(100)
set @tt = 'table_123'

select * FROM @tt 

这样查询不能成功。

只能这样查询才成功啊。exec('select * FROM '+ @tt)
但是这个查询对我的语句更改比较 大,

我的表是固定表,不是变量表,我不想设置变量表。

想问一下,像要这样的情况。是不是只能通过 
exec('select * FROM '+ @tt)
来查询呢?
------最佳解决方案--------------------
这种情况下首先可以确定需要动态语句  也就是你说的可以成功的方法

但是你说你的表示固定的  那为何不直接select *  from 表名   非要用变量   这不是多此一举吗?


此外如果一定要用变量  那么你把动态语句封装到存储过程里面  直接调用存储过程就好了
------其他解决方案--------------------
不是我为什么要多此一举。
具体情况比较 复杂,我这边只是举个简单的例子
看来是没有办法了。谢谢了。