Как сделать так, чтобы в Database Diagram визуально отображались внешние ключи в Management Studio? - PullRequest
12 голосов
/ 13 апреля 2011

Я проверяю эту базу данных и создаю внешние ключи, поверьте, их не было. Я использую SSMS, чтобы визуально сообщить, каких внешних ключей не хватает, а также создать их. Есть ли какая-либо конфигурация, позволяющая конструктору диаграмм показывать, является ли определенный столбец частью внешнего ключа? Это помогло бы мне быстрее определить недостающие ФК.

Вот как это показано в данный момент:

Current

Это то, что я ищу (или что-то в этом роде):

Desired

Мне просто нужен какой-то визуальный индикатор (как я видел в других инструментах), который показывает мне, является ли столбец частью FK.

Ответы [ 3 ]

9 голосов
/ 30 марта 2015

Я знаю, что это старый пост, но это может помочь другим.

в диаграмме базы данных SSMS, щелкнув правой кнопкой мыши по таблице>, затем выберите «представление таблицы»>, затем выберите «ключи», это покажет только PK и FK и все другие ключи в этой таблице. Хорошо, вы говорите, что вам это нужно для всех таблиц, которые хорошо работают в рамках диаграммы базы данных SSMS, щелкните фон (без выбранных элементов), затем нажмите «Ctrl + A», чтобы выбрать все, затем, наведя курсор мыши на выбранную таблицу, щелкните правой кнопкой мыши>, затем выберите табличное представление "> затем выберите" ключи ", это покажет PK и FK и все другие ключи в каждой выбранной таблице. затем, если вам нужно просмотреть полный набор имен столбцов для данной таблицы, вы можете изменить «табличное представление» для этой таблицы и вернуть ее обратно.

Таким образом, вы видите, что есть, а что нет, ФК ...

Надеюсь, это поможет другим, как и я.

4 голосов
/ 13 апреля 2011

Я не нашел способа сделать это визуально в Management Studio, но вы можете попробовать следующее:

select f.name as ForeignKey, OBJECT_NAME(f.parent_object_id) as TableName,
       COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
       OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName, 
       COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
  from sys.foreign_keys f
       inner join sys.foreign_key_columns fc ON f.OBJECT_ID = fc.constraint_object_id

это не визуально, но вы будете быстрее проверять

4 голосов
/ 13 апреля 2011

В SSMS, если вы развернете дерево таблиц для своей базы данных, а затем развернете папку Columns, значок рядом со столбцом будет серебряным / серым ключом, если он является частью отношения внешнего ключа, но, к сожалению, он выиграл ' не показывает вам столбец, к которому он привязан.

Вы также можете создать новую диаграмму в SSMS, щелкнув правой кнопкой мыши папку «Диаграммы базы данных» под вашей базой данных в дереве и выбрав «Новая диаграмма базы данных». Вы получите строки между таблицами, где существуют внешние ключи.

Вы также можете использовать сторонние инструменты для обратного проектирования схемы из вашей схемы БД, например, Microsoft Visio или Sparx Enterprise Architect.

Я не уверен, что SSMS Express поддерживает эти вещи, так что вам может не повезти с чем-нибудь необычным / визуальным.

...