我正在研究SQL Server 2008
我正在使用此查询来禁用整个数据库的约束,我认为此查询是正确的
禁用 -
USE geoAllCase;
GO EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
成功运行
启用
USE geoAllCase;
GO EXEC sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
之后数据库成功复制了数据,但是当我再次启用所有我遇到此错误消息的约束时,我怎样才能对数据库的现有数据启用外键约束
错误消息 -
Msg 547,Level 16,State 0,Line 1 ALTER TABLE语句 与FOREIGN KEY约束“FK_MP_GN_LE_V”冲突。该 数据库“geo2”,表“dbo.TGEO_EDGE_V”列中发生冲突 'GEO_EDGE_UID'。
答案 0 :(得分:3)
表dbo.TGEO_EDGE_V中的列GEO_EDGE_UID包含违反FK_MP_GN_LE_V外键约束的数据。您无法在不首先清理数据的情况下重新启用该约束。