将大量带有前缀的表组合到一个视图中

时间:2016-07-02 12:08:10

标签: sql sql-server

我从一个程序的数据库中导入了大约50个表,这些表共享相同的结构,但名称不同,都有相同的前缀:

  • prefx_abc4
  • prefx_adr3
  • prefx_ubr6

我想将它们合并到一个视图中,而不必手动用UNION ALL写出所有名称,并且在一列中显示该名称:

enter image description here

1 个答案:

答案 0 :(得分:2)

在动态SQL的帮助下,假设结构相同

Declare @SQL varchar(max) = '>>>'
Select @SQL=Replace(COALESCE(@SQL,'')+' Union All Select *,TableName='''+TABLE_NAME+''' From [' + TABLE_NAME +']','>>> Union All ','')  
  From  INFORMATION_SCHEMA.Tables 
  Where Table_Name Like 'PREFIX%'

Select @SQL
--Exec(@SQL)