Инструмент SQL для вывода списка связанных таблиц в родительскую таблицу

Dears,

Не могли бы вы помочь мне найти инструмент SQL, который покажет мне список таблиц, которые имеют отношение к родительской таблице. Пример:

Выберите * из таблицы_1

когда я пишу объединение, будут перечислены таблицы, связанные с таблицей_1, и после выбора одной из таблиц будет также показано объединение на основе столбцов PK и FK.

Я пробовал SQL Promt, но он перечисляет все объекты, а не только те, к которым я мог присоединиться с таблицей_1.

Я работаю над БД с более чем 300 таблицами, и трудно найти связь между таблицами.

Спасибо!

1 ответ

Этот запрос поможет вам найти таблицы, которые ссылаются на данную таблицу. Вы также можете переделать запрос, чтобы получить обратное, если это необходимо.

SELECT  
     KCU1.CONSTRAINT_NAME AS FK_CONSTRAINT_NAME 
    ,KCU1.TABLE_NAME AS FK_TABLE_NAME 
    ,KCU1.COLUMN_NAME AS FK_COLUMN_NAME 
    ,KCU1.ORDINAL_POSITION AS FK_ORDINAL_POSITION 
    ,KCU2.CONSTRAINT_NAME AS REFERENCED_CONSTRAINT_NAME 
    ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME 
    ,KCU2.COLUMN_NAME AS REFERENCED_COLUMN_NAME 
    ,KCU2.ORDINAL_POSITION AS REFERENCED_ORDINAL_POSITION 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC 

LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1 
    ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
    AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
    AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME 

LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 
    ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG  
    AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA 
    AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME 
    AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION 
where KCU2.TABLE_NAME  = 'ReferencedTableName'
Другие вопросы по тегам