gpt4 book ai didi

sql - 由于模糊冲突,无法添加外键约束

转载 作者:行者123 更新时间:2023-12-02 07:28:05 25 4
gpt4 key购买 nike

尝试运行:

ALTER TABLE [dbo].[Table1] ADD
CONSTRAINT [FK_Table1_ScenarioResult]
FOREIGN KEY ([ScenarioResultID]) REFERENCES [dbo].[ScenarioResult] ([ScenarioResultID]) ON DELETE CASCADE

出现这个错误:

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

我检查过:

  • 约束不存在,并且同一列上不存在其他约束
  • 列中的值在两个表中都匹配
  • 列的类型相同
  • 尝试了不同的名字,也失败了

SQL Server 2008 R2

有什么我可以尝试的想法吗?

最佳答案

理论上这可能有效:

ALTER TABLE [dbo].[Table1] WITH NOCHECK ADD
CONSTRAINT [FK_Table1_ScenarioResult]
FOREIGN KEY ([ScenarioResultID]) REFERENCES [dbo].[ScenarioResult] ([ScenarioResultID])
ON DELETE CASCADE

不确定您如何检查现有值的完整性,但应该是:

SELECT COUNT(*) as Orphans FROM [dbo].[Table1] t 
WHERE NOT EXISTS
(SELECT * FROM [dbo].[ScenarioResult] WHERE ScenarioResultID = t.ScenarioResultID)

如果“孤儿”大于零,您需要在添加约束之前清理数据。

关于sql - 由于模糊冲突,无法添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com