spr*_*t12 2 sql sql-server conflict constraints foreign-keys
试图运行:
ALTER TABLE [dbo].[Table1] ADD
CONSTRAINT [FK_Table1_ScenarioResult]
FOREIGN KEY ([ScenarioResultID]) REFERENCES [dbo].[ScenarioResult] ([ScenarioResultID]) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)
得到此错误:
消息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
Run Code Online (Sandbox Code Playgroud)
不确定如何检查现有值的完整性,但它应该是:
SELECT COUNT(*) as Orphans FROM [dbo].[Table1] t
WHERE NOT EXISTS
(SELECT * FROM [dbo].[ScenarioResult] WHERE ScenarioResultID = t.ScenarioResultID)
Run Code Online (Sandbox Code Playgroud)
如果"孤儿"大于零则需要在添加约束之前清理数据.
| 归档时间: |
|
| 查看次数: |
3957 次 |
| 最近记录: |