【发布时间】:2008-11-03 18:21:21
【问题描述】:
SQL Server 2005。
我正在将外键约束添加到据称不需要它们的应用程序的数据库中。自然,数据变得不可靠,外键字段中存在孤立条目。
设置:
两个表,TableUser 和 TableOrder。
TableUser 有主键“UserID”,TableOrder 有外键“UserID”。
如何查找 TableOrder.UserID 在 TableUser.UserID 中没有匹配条目的行?
例如,TableOrder.UserID 的值为 250,但没有与 250 匹配的 TableUser.UserID 键。
【问题讨论】:
-
找到它们后,您想用它们做什么?例如,删除它们?
-
ERRR,如果有外键怎么可能不匹配?你的 SQL 中真的有硬编码的 FK 吗?
-
他的意思是一个表,其中的字段被应用程序视为外键,但从未由数据库本身强制执行。
-
或者 FK 约束是事后添加的(SQL Server 默认情况下不会将它们应用于现有行),或者如果有人关闭 FK 验证以强制执行某些操作并因此搞砸了数据库(看过太多次了)。
标签: sql-server-2005 tsql foreign-keys foreign-key-relationship