首先,我要说我是新手,并且阅读过许多其他有相同问题的文章。我有一个名为“ AllPeople”的表,并且在该表中有一个名为“ Ethnicity”的整数列,我想将其用作指向“ RefEthnicities”表中记录的外键。我不断收到以下消息:
无法创建关系'FK_AllPeople_RefEthnicities'。
ALTER TABLE语句与FOREIGN KEY约束“ FK_AllPeople_RefEthnicities”冲突。在数据库“ MVC-Cemeteries-Dev”的表“ dbo.RefEthnicities”的“ ID”列中发生了冲突。
我在“ AllPeople”表中设置了关系,并告诉它主键是“ RefEthnicities”中的ID列,外键是“ AllPeople”表中的“ Ethnicity”列。我究竟做错了什么?我的RefEthnicities表是新的;里面没有数据。
在设计模式下,我通过单击名称“ ID”左侧的小框并在同一属性窗口中的列属性选项卡中的下方,将“ RefEthnicities”表中的ID字段设置为主键,我告诉它将索引规范设置为“是”。
我确定这很简单,但我无法弄清楚。
Error Message
答案 0 :(得分:0)
作为我在问题中有限的信息,有2种可能性
表AllPeople中的种族栏的 NULL或空白 ''
值
SELECT A.Ethnicity,A.*
FROM dbo.AllPeople A
WHERE ISNULL(A.Ethnicity,'')=''
某些值列表AllPeople中的种族在表RefEthnicities中的列ID中没有父项
SELECT A.Ethnicity,R.ID, *
FROM dbo.AllPeople A
LEFT JOIN RefEthnicities R
ON A.Ethnicity=R.ID
WHERE R.ID IS NULL
如果两个查询中都有任何行,则需要修复表AllPeople中的“种族”列中的数据。
答案 1 :(得分:0)
好吧,这仍然没有意义。如果我使用以下命令创建两个全新的表:
表1 ID主键int不可为空 值varchar table2FK
表2 ID主键int不可为空 值varchar
在table1中,我建立了table2FK和Table2.ID之间的关系,它可以完美工作,并且表中没有数据。如果我在AllPeople和RefEthnicicties表中使用完全相同的过程,则会收到错误消息。这是没有道理的。我想念什么? 亚当
答案 2 :(得分:0)
解决了。非常感谢。我在AllPeople表中记录了一个种族,该记录的值为0。由于我在RefEthnicity表中没有ID为0的记录,因此我无法这样做。
adam