SQL Server:如何从动态多个表中获取数据?

问题描述:

使用SQL SERVER。SQL Server:如何从动态多个表中获取数据?

该数据库包含来自不同年份的数据,不知何故,我希望获取的所有数据(这些年),并显示给用户,例如,数据库包含表:

table 
-------- 
records_2000_01 
records_2000_02 
records_2000_03 
... 
现在

通过 选择TABLE_NAME从information_schema.tables到tabletable其中table_name like'records_%'

我可以获取所有的表名,如何编写一个SQL(或可能是过程)从这些表中获取所有数据?将所有记录放入一张表中?

thx。

+1

的可能重复[我怎样才能让这个查询,以接受动态表名?(http://*.com/questions/ 5966428/how-can-i-make-this-query-to-accept-dynamic-table-names) – 2011-12-15 18:39:18

在下面的步骤中创建你需要遵循的步骤。

  • Create table Common_Table具有相同的结构,其中所有的表像records_2000_02和其他。
  • 使用循环或光标指示从information_schema获取的与您的表名匹配的所有记录
  • 创建从Information_schema获得的动态sql,如' Insert into your Common_Table select * from ' + Table_name
    • 然后,你在一个表中的所有数据Common_Table
+0

是的,我已经得到它的工作,但我可以;没有发布答案,因为我的“信誉太低“,我无法回答我自己的问题......这是什么:P – 2011-12-15 20:00:20