首页 > 解决方案 > SQL Server 表未在图中显示关系

问题描述

我有很多共享键的表,但在图中没有显示从表到表的路由。大多数表格会显示一条路线,但其中很多没有,尽管它们应该显示。我已经检查了数据类型,并且可以加入这些表,所以我想知道这是否是我在图表工具中必须做的事情,以将关系设置为相关表。我假设这是当您为图表选择表时 sql server 自动执行的操作。

有什么建议么?

标签: sqlsql-serverdatabaseerddatabase-diagram

解决方案


已编辑:也可能只是您需要“刷新”图表,删除表格并将其重新添加到图表中。

原文:如果不存在关系,则图中不显示。也许您在具有相同名称和数据类型的两个表中定义了它们的键,但是您缺少显式引用(约束)。像这样的东西:

ALTER TABLE Sales.TempSalesReason
   ADD CONSTRAINT FK_TempSales_SalesReason FOREIGN KEY (TempID)
      REFERENCES Sales.SalesReason (SalesReasonID)
      ON DELETE CASCADE
      ON UPDATE CASCADE
;

不过,您可能想省略 ON [ACTION] CASCADE。您可以在查询中使用 JOIN 的原因是,为了 JOIN 表,约束不是强制性的,只要数据类型允许,您可以 JOIN 任何列。您甚至可以 JOIN 与没有 PK 的列,但这会产生不好的性能(并且也是另一个主题)。

有关如何使用图形工具或代码执行此操作,请参阅官方文档:

https://docs.microsoft.com/en-us/sql/relational-databases/tables/create-foreign-key-relationships?view=sql-server-2016


推荐阅读