我想介绍一下如何删除外键失败的行

发布于 2024-11-13 23:26:29 字数 110 浏览 2 评论 0原文

在给定的 SQL Server 2008 表中,我有一个应启用的禁用外键约束。我无法启用此约束,因为此表中的某些行与此外键冲突。这些行无效。

是否有一个简单的技巧可以删除与此约束冲突的数据?

In a given SQL Server 2008 table I have a disabled foreign key constraint that should be enabled. I cannot enable this constraint because there are rows in this table that conflict with this foreign key. These rows are invalid.

Is there a simple trick that removes data that is conflicting with this constraint?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不忘初心 2024-11-20 23:26:29

这是一种方法

SQL 脚本

BEGIN TRAN

DELETE FROM Detail    
OUTPUT DELETED.*  -- Verification
FROM   Detail d
       LEFT OUTER JOIN Master m ON m.PK = d.FK
WHERE  m.PK IS NULL

ROLLBACK TRAN -- Change to commit when verified.

This would be one way to do it

SQL Script

BEGIN TRAN

DELETE FROM Detail    
OUTPUT DELETED.*  -- Verification
FROM   Detail d
       LEFT OUTER JOIN Master m ON m.PK = d.FK
WHERE  m.PK IS NULL

ROLLBACK TRAN -- Change to commit when verified.
音栖息无 2024-11-20 23:26:29

您必须手动删除所有不遵守约束的行:可能您需要一个 T-SQL 语句来获取需要删除的所有行(可能使用外连接),然后删除它们

you have to manually remove all the row that doesn't respect the constrain: probably you will need a T-SQL statement to get all the row you need to remove(perhaps using an outer join) then remove them

凉城凉梦凉人心 2024-11-20 23:26:29

您可以使用以下查询识别有问题的数据:

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS

You can identify the offending data with this query:

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文