【问题标题】:How do I get rid off error on adding Foreign Key to a table which contains data如何摆脱将外键添加到包含数据的表时出现的错误
【发布时间】:2015-02-03 11:01:24
【问题描述】:

我正在使用以下书面查询将外键添加到包含数据的现有字段:

 ALTER TABLE ServiceDetails
 ADD CONSTRAINT fk_ServiceDetails
 FOREIGN KEY (OCF_ID)
 REFERENCES OCF_Commerce(OCF_Internal_ID);

但执行查询后出现错误。我错过了什么?

错误信息是:

消息 547,第 16 级,状态 0,第 1 行
ALTER TABLE 语句与 FOREIGN KEY 约束“fk_ServiceDetails”冲突。冲突发生在数据库“TrulyDB”、表“dbo.OCF_Commerce”、列“OCF_Internal_ID”中。

【问题讨论】:

  • 检查您的ServiceDetails Table是否包含OCF_Commerce Tbale中OCF_Internal_ID的所有OCF_ID
  • FK 和 PK 的数据不匹配,例如有 194 的 FK 但没有 194 的 PK。

标签: sql-server foreign-keys constraints alter-table


【解决方案1】:

您的表中可能存在不一致的数据 尝试运行

select *
from ServiceDetails 
where OCF_ID not in (select OCF_Internal_ID from OCF_Commerce)

这将输出主表中没有ID的所有行

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 2020-12-21
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多