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

时间:2011-12-15 18:37:05

标签: sql sql-server sql-server-2008 procedure

使用SQL SERVER。

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

table
--------
records_2000_01
records_2000_02
records_2000_03
...
现在通过 从information_schema.tables中选择TABLE_NAME到@tableName,其中table_name类似于'records _%'

我可以获取所有表名,如何编写SQL(或可能是过程)来从这些表中获取所有数据?把所有记录都放到一张桌子里?

THX。

1 个答案:

答案 0 :(得分:1)

在此以下步骤中创建程序,您需要遵循。

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