如何使数据库图表直观地显示Management Studio中的外键?

时间:2011-04-12 21:38:40

标签: sql-server sql-server-2008 ssms

我正在审查这个数据库并创建外键,相信我它们不存在。我正在使用SSMS直观地告诉我缺少哪些外键并创建它们。是否有任何配置让图表设计者显示特定列是否已经是外键的一部分?这将有助于我更快地识别丢失的FK。

目前的情况如下:

Current

这就是我正在寻找的东西(或类似的东西):

Desired

我只需要一些视觉指示器(就像我在其他工具中看到的那样),它会告诉我列是否是FK的一部分。

3 个答案:

答案 0 :(得分:9)

我知道这是一个老帖子,但这可能有助于其他人。

右键单击表格>在SSMS数据库图表中

然后选择“表格视图”>然后选择“键”,这只会显示PK和FK以及该表中的所有其他键。 好的,你说你需要在SSMS数据库图表中的所有表格中单击背景(没有选择任何项目),然后按“Ctrl + A”选择所有,然后用鼠标选择表格右键单击>然后选择“表格视图”>然后选择“键”,这将显示PK和FK以及每个选定表中的所有其他键。然后,如果您需要查看给定表的完整列名称,您可以更改该表的“表视图”并将其更改回来。

通过这种方式,你可以看到FK的内容和内容......

希望这有助于其他人喜欢我。

答案 1 :(得分:4)

在SSMS中,如果展开数据库的表树,然后展开Columns文件夹,如果它是外键关系的一部分,则列旁边的图标将是银色/灰色键,但不幸的是它赢了“ t显示它映射到哪一列的列。

您还可以在SSMS中创建一个新图表,方法是右键单击树中数据库下的“Database Diagrams”文件夹,然后选择“New Database Diagram”。您将获得存在外键的表之间的行。

您还可以使用第三方工具对数据库架构中的图表进行反向工程,例如Microsoft Visio或Sparx Enterprise Architect。

我不确定SSMS Express是否支持这些内容,因此您可能对任何花哨/视觉效果都不满意。

答案 2 :(得分:4)

我还没有找到在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

这不是直观的,但你会更快检查