gpt4 book ai didi

sql-server - 如何在sql server中将数据库表结构转换为XML文件?

转载 作者:行者123 更新时间:2023-12-03 11:18:43 26 4
gpt4 key购买 nike

我将如何将表架构转换为 XML 格式?格式如下。

<Tables>
<Table>
<Name>courses</Name>
<Schema>dbo</Schema>
<Columns>
<Column>
<Name>id</Name>
<DataType>int</DataType>
</Column>
<Column>
<Name>page_name</Name>
<DataType>nvarchar</DataType>
<Length>50</Length>
</Column>
</Columns>
</Table>
<Table>
<Name>course_details</Name>
<Schema>dbo</Schema>
.....
.....
</Table>
</Tables>

我能够分别生成列和表的结构。但我想合并两者。这怎么可能?
我的 SQL 脚本

对于表:
SELECT
Distinct
TABLE_NAME as Name,
TABLE_SCHEMA as [Schema]
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo'
ORDER BY TABLE_NAME ASC
For XML PATH ('Table'),
Root('Tables')

对于列:
SELECT
Column_Name as Name,
DATA_TYPE as DataType,
CHARACTER_MAXIMUM_LENGTH as [Length]
FROM INFORMATION_SCHEMA.COLUMNS
For XML PATH ('Column'),
Root('Columns')

最佳答案

相同的查询,但看起来更好:

SELECT TABLE_NAME as '@Name',        
(
SELECT Column_Name as '@Name',
DATA_TYPE as '@DataType',
case data_type
when 'nvarchar'
then CHARACTER_MAXIMUM_LENGTH
when 'varchar'
then CHARACTER_MAXIMUM_LENGTH
else null
end as '@Length',
IS_NULLABLE AS '@IsNullable'

FROM INFORMATION_SCHEMA.COLUMNS
where INFORMATION_SCHEMA.COLUMNS.TABLE_NAME =
INFORMATION_SCHEMA.TABLES.TABLE_NAME
order by INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION
For XML PATH ('Column'), type
)

FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo'
ORDER BY TABLE_NAME ASC
For XML PATH ('Table'),Root('Tables')

关于sql-server - 如何在sql server中将数据库表结构转换为XML文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11531136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com