如何从SQL Server 2008中的现有数据库创建XML架构
发布时间:2020-12-12 06:45:23 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法从SQL Server 2008,SQL Server Management Studio中的现有数据库创建 XML模式? 我有一个约50个表的数据库.我正在寻找一个显示这些表之间关系的“漂亮”图表.使用另一个名为SQL Designer(https://code.google.com/p/wwwsqldesigner/)的应用程序将为
有没有办法从SQL Server 2008,SQL Server Management Studio中的现有数据库创建
XML模式?
我有一个约50个表的数据库.我正在寻找一个显示这些表之间关系的“漂亮”图表.使用另一个名为SQL Designer(https://code.google.com/p/wwwsqldesigner/)的应用程序将为我提供“漂亮”的图片,但我不知道如何创建所需的XML模式. 我在论坛(和MS)进行了搜索,但找不到我的答案.我可以找到创建数据库的工具,但我正在反过来……我需要一张漂亮的图片,以图表的形式显示数据库.我想如果我可以将我的数据库结构变成XML,那么SQL Designer将为我完成剩下的工作. 谢谢你的协助. 缺口 解决方法如果您只需要表的xml架构,请使用以下方法查询它们:select top 0 * FROM daTable FOR XML AUTO,XMLSCHEMA 如果您需要表名和列来创建数据库的表示以及表的连接方式,您可以使用以下内容: SELECT s.name as '@Schema',t.name as '@Name',t.object_id as '@Id',( SELECT c.name as '@Name',c.column_id as '@Id',IIF(ic.object_id IS NOT NULL,1,0) as '@IsPrimaryKey',fkc.referenced_object_id as '@ColumnReferencesTableId',fkc.referenced_column_id as '@ColumnReferencesTableColumnId' FROM sys.columns as c LEFT OUTER JOIN sys.index_columns as ic ON c.object_id = ic.object_id AND c.column_id = ic.column_id AND ic.index_id = 1 LEFT OUTER JOIN sys.foreign_key_columns as fkc ON c.object_id = fkc.parent_object_id AND c.column_id = fkc.parent_column_id WHERE c.object_id = t.object_id FOR XML PATH ('Column'),TYPE ) FROM sys.schemas as s INNER JOIN sys.tables as t ON s.schema_id = t.schema_id FOR XML PATH('Table'),ROOT('Tables') 让您的应用程序使用ColumnReferencesTableId和ColumnReferencesTableColumnId来获取表关系.如果你更喜欢写出他们的名字,你还可以进一步加入到引用的列和表中,但我认为他们的ID就足够了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |