我从一个程序的数据库中导入了大约50个表,这些表共享相同的结构,但名称不同,都有相同的前缀:
我想将它们合并到一个视图中,而不必手动用UNION ALL
写出所有名称,并且在一列中显示该名称:
答案 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)