请任何人知道我怎样才能将我的数据库结构作为 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')

10-06 14:05
查看更多