尝试创建一个视图,其中所有表具有相同的字段但其中包含不同的数据。我们有一个表,我们跟踪每个表,并跟踪哪些表是活动的。所以我想要一个将所有活动表放在一个视图中的视图。
假设您有表A,B和C.只有B和C处于活动状态,表1列出了每个表以及哪些表处于活动状态。因此,从表格1中我们可以获得视图所需的表名。
在SQL Server(2008版)
上如何做到这一点让我感到震惊答案 0 :(得分:0)
这听起来像是一个糟糕的设计。最好将所有数据存储在一个表中,并使用分区方法来访问它。
但是,这是一种做你想做的事情的方法:
create view abc as
select a.*
from a cross join
(select 1 from table1 where status = 'active' and tablename = 'a')
union all
select b.*
from b cross join
(select 1 from table1 where status = 'active' and tablename = 'b')
select c.*
from c cross join
(select 1 from table1 where status = 'active' and tablename = 'c');
我不推荐这种方法。它只是为了表明它是可能的。我选择了cross join
,因为子查询只被评估一次,这可能是底层执行代码的优化。
答案 1 :(得分:0)
也许您需要使用表分区:What is a table partition?
以下是一个示例:MSDN