DB -> graphviz

Oct 18, 2009 14:47

Какой чудесный скрипт для генерации ERD попался мне на глаза. Как обычно, все гениальное - просто.
Слегка подкорректированный вариант, с упрощенным выводом, без привязки к MS SQL и без временной таблицы :

SELECT
'digraph G { node[shape=box];'

UNION ALL

SELECT
' "' + TABLE_NAME + '";'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'

UNION ALL

SELECT ' "' + PKTABLE.TABLE_NAME + '" -> "' + FKTABLE.TABLE_NAME + '";'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS REFCON
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FKTABLE ON FKTABLE.CONSTRAINT_NAME = REFCON.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PKTABLE ON PKTABLE.CONSTRAINT_NAME = REFCON.UNIQUE_CONSTRAINT_NAME

UNION ALL

SELECT
'}'

programming

Previous post Next post
Up