我想在2个表之间使用外键,所以我会像往常一样尝试它。现在我遇到的问题是他无法创建,并且由于它的外观无法创建,因为已经存在密钥但是没有。
- Unable to create relationship
'FK_tbl_Paramed_RegistratieBehandelingen_Users'.
The ALTER TABLE statement conflicted with the
FOREIGN KEY constraint "FK_tbl_Paramed_RegistratieBehandelingen_Users".
The conflict occurred in database "Nestor_Server",
table "dbo.Users", column 'UserID'.
我检查过他们是否有相同的类型,他们做(bigint)所以不明白为什么他不会创建它
答案 0 :(得分:51)
您可能在RegistratieBehandelingen(不确定表名称)中有记录,而这些记录在用户表中不存在。
select * from RegistratieBehandelingen a where UserID IS NULL or
not exists (select 1 from Users b where b.UserID= a.UserID)
答案 1 :(得分:11)
这意味着您的子数据没有匹配的父ID。
运行以下内容以查看是否有任何结果:
SELECT *
FROM tbl_Paramed_RegistratieBehandelingen r
LEFT JOIN Users u on r.UserID = u.UserID
WHERE u.UserID IS NULL
(在适当的情况下更改表名和列名)
如果您得到任何结果,则应显示哪些记录包含与用户不匹配的用户ID。
答案 2 :(得分:0)
在上述查询之后,您可能希望从表tbl_Paramed_RegistratieBehandelingen中删除不存在的UserId,或将它们插入表Users中。