Я вытащил несколько SQL из различных вопросов о переполнении стека, чтобы помочь мне вывести мои отношения в моей базе данных. Это было очень полезно. (Я бросил все это в #temptable
).
SELECT fk.name 'FK Name',
tp.name 'Parent table',
cp.name, cp.column_id,
tr.name 'Refrenced table',
cr.name, cr.column_id
FROM sys.foreign_keys fk
INNER JOIN sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY tp.name, cp.column_id
Это было сделано для создания сценариев, в которых есть Joins / et c на всех моих таблицах для всех моих отношений. Теперь у меня есть небольшая дилемма, я не совсем уверен, как это сделать.
Например, выходные данные выше показывают следующее:
Показывает родительскую таблицу с именем Business с серией полей называется ID_BsinessCategory
, ID_BusinessGroup
и др. c. Они связаны со справочными таблицами, которые называются BusinessCategory
и BusinessGroup
.
Мне нужно написать скрипт, который будет создавать для меня объединения
select *
from Business a
join BusinessCategory b on a.ID_BusinessCategory = b.ID_BusinessCategory
Проблема не в том, что я не могу написать код, проблема в том, что я не знаю, как написать скрипт для базы данных, чтобы написать его для меня. Существует почти 150 таблиц с сопоставимым количеством взаимосвязей.
Буду признателен за любой совет.