请任何人知道我怎样才能将我的数据库结构作为 xml
我有数据库:exdb
我有表:extbl1
我有列:excol1
我有列:excol2
我有专栏:excol3
&有列:excol4
.... 等等
我怎样才能得到以下结构
<DataBase DataBaseName="exdb">
<Table TableName="extbl1">
<Column ColumnName="excol1"/>
<Column ColumnName="excol2"/>
<Column ColumnName="excol3"/>
<Column ColumnName="excol4"/>
</Table>
<Table TableName="extb2">
<Column ColumnName="excol1"/>
<Column ColumnName="excol2"/>
<Column ColumnName="excol3"/>
<Column ColumnName="excol4"/>
</Table>
</DataBase>
最佳答案
使用 for xml
和子查询非常简单:
select
'exdb' [@DataBaseName],
(select t.table_name [@TableName],
(select c.COLUMN_NAME [@ColumnName]
from INFORMATION_SCHEMA.COLUMNS c
where c.TABLE_NAME = t.TABLE_NAME
for xml path('Column'), type)
from INFORMATION_SCHEMA.TABLES t
for xml path('Table'), type)
for xml path('DataBase')