Создание диаграммы ERD с использованием SQL, XML и HTML - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь сгенерировать диаграмму ERD из наших существующих таблиц, а затем преобразовать ее в html-страницу, где пользователи могут видеть таблицы со связями и т. Д. Например, диаграмма связей сущностей с основными, внешними и показывающими линиями или отношения.

Цель работы с диаграммами базы данных - автоматизировать генерацию ERD. Сгенерируйте XML из запроса SQL, а затем сгенерируйте диаграмму взаимосвязи сущностей HTML из кода XML.

Это то, что я сделал, поскольку пытался сгенерировать XML из SQL-запроса. Теперь я хотел бы создать HTML ERD-диаграмму, используя XML и HTML. Пожалуйста, не могли бы вы подтвердить, если это возможно, и любая помощь будет полезна для меня.

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 ('td'),TYPE
)
FROM sys.schemas as s
INNER JOIN sys.tables as t
    ON s.schema_id = t.schema_id
FOR XML PATH('td'),ROOT('Tables')
...