Какой
чудесный скрипт для генерации 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
'}'