【问题标题】:Relationship between two tables in SQL ServerSQL Server 中两个表之间的关系
【发布时间】:2016-04-25 18:28:22
【问题描述】:

我在 LibraryDB 中有两个表。一个是 Book_Master,另一个是 Languages。我在 Book_Master 中使用 langid 作为外键,并希望在这两个表之间建立关系,但出现错误。图片在描述中给出。帮助我的程序员..!!这是图片Click to see image

【问题讨论】:

  • 列是否可以为空?列上是否有默认值?该列中可能已经有数据阻止外键检查成功
  • 是的,这很可能是因为有一些数据阻止创建密钥。当然,这主要是猜测,因为您没有提供太多与您的表格类似的细节。
  • 您的 Book_Master 表中已有数据。所以我假设它有一个 LangID 列,它是 Languages 表的外键。该列必须可以为空,并且 LangID 列中的所有数据都需要已经存在于 Languages 表中。
  • 这两列都可以为空......我还没有在两个表中放入任何数据......

标签: sql sql-server database


【解决方案1】:

分析您的表格。

select b.LangID
from book_master b
left join Languages L on b.LangID = L.LangID
where L.LangID is null

结果是 Book_master 中的 LangID 在 Languages 中不存在(并阻止 FK 创建)。

【讨论】:

  • Book_Master 中的 langid 为 0
  • book_master中的这些值设置为现有值或null以创建FK
  • 非常感谢先生...我确实取消选中了 Book_Master 中的 langid 复选框,这是一个外键..但是当我检查它并将 langid 更新为 NULL.. 然后关系创建.. .. 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2016-06-27
  • 2017-07-31
相关资源
最近更新 更多