我想将所有表及其列放在一个表中。
例如:
Table 1 | Column1 | Column2 | Column3 |
Table 2 | Column1 |
Table 3 | Column1 | Column2 | Column3 | Column4 | Column5
Table 4 | Column1 | Column2 |
Table 5 | Column1 | Column2 | Column3 | Column4 | Column5
Table 6 | Column1 | Column2 | Column3 | Column4 | Column5 | Column6 | Column7
编辑:
我正在使用的版本:Microsoft SQL Server 2008 R2(SP1)-10.50.2550.0(X64)
答案 0 :(得分:0)
编辑
正如jarlh指出的那样-您需要确保每个数据类型的数据类型 列的类型相同,否则您将无法合并它们。
因此,如果col1通常是整数,则不能将col1与字符串 价值观。除非将其转换为字符串。
如果它应该只是静态的,请执行以下操作:
Select Col1,Col2,Col3 from Table1
union all
Select col1,null as Col2, null as Col3 from table2
以此类推。
因此,如果您最大的表有7列 应该是
Select col1, col2,col3,null as col4,null as col5,null as col6,null as col7 from table1
union all
select col1, null as col2, null as col3.................. ,null as col7 from table2
答案 1 :(得分:0)
使用以下查询。
SELECT t.name as TableName,
stuff(
(select '|'+ CAST(c.name as varchar(max)) from sys.columns c
where c.object_id = t.object_id for xml path('')),1,1,'') as columnlist
from sys.tables t