【问题标题】:SQL Server Database Diagram Show relationshipsSQL Server 数据库图 显示关系
【发布时间】:2013-05-03 13:08:58
【问题描述】:

我可以下载一个在线数据库。它来自 Access,我将其导出到 SQL Server。它工作得很好。但是,当我创建图表时,它不会显示关系。我的意思是我希望看到一条连接每个表的外键的线。

我的谷歌搜索不成功。有人说选择关系标签。那是行不通的。我确实知道,如果我创建了一个数据库、表、键等,我会看到我正在寻找的行。为什么他们没有出现在这种特殊情况下?我已经在 Win 7 上的 SQL Server 2008 R2 和 Win 8 上的 2012 中尝试过。同样的问题。

【问题讨论】:

  • 愚蠢的问题,但外键真的存在吗?
  • 您在使用 SQL Server Management Studio 吗?
  • 我刚刚提取了一个带有订单和 [订单详细信息] 的 Northwind 数据库,关系“链接器”就在那里。我同意,请确保数据库中确实存在 FK。
  • 如果您在 SSMS 中,您应该能够右键单击表并选择“脚本表”作为创建到新查询窗口,然后在 ALTER TABLE 语句中看到单词“FOREIGN KEY”初始创建表。如果您没有看到“FOREIGN KEY”,则说明您没有外键,这就是它们没有出现在您的数据库图表中的原因

标签: sql-server database sql-server-2008-r2 sql-server-2012 database-diagram


【解决方案1】:

运行此查询以确保某些 FK 存在:

SELECT 
  [ForeignKey] = f.name
, [TableName] = OBJECT_NAME(f.parent_object_id), COL_NAME(fc.parent_object_id,fc.parent_column_id)
, [ReferenceTableName] = OBJECT_NAME (f.referenced_object_id)
, ReferenceColumnName = COL_NAME(fc.referenced_object_id, fc.referenced_column_id)
FROM 
sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id

【讨论】:

  • 好的,所以.. 什么都没有出现,查询执行很快。我猜那里没有约束?
  • 是的。现在你知道了。知道是成功的一半。
  • 所以旧版本的数据库显示访问中的关系,导出到 sql server 和没有关系。在最新版本中,两者都没有关系。奇怪
  • 我不熟悉“将 Jet 数据库升级到 Sql Server”.....是否有任何“高级选项”屏幕?你会认为 FK 会顺其自然。
  • 是的,它会自动选择。所以我不太确定。数据库位于此处:seanlahman.com/baseball-archive/statistics 2010 版在access 中有关系,但在sql server 中没有。 2012 版两者都没有。 2012版的sql脚本,在sql server中运行不太好,反勾号,大小,以及之后的更多问题。所以我从访问服务器导出,它工作得很好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多