在SQL Server 2008中启用数据库约束

时间:2014-01-03 14:23:00

标签: sql-server-2008 tsql constraints

我正在研究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'。

1 个答案:

答案 0 :(得分:3)

表dbo.TGEO_EDGE_V中的列GEO_EDGE_UID包含违反FK_MP_GN_LE_V外键约束的数据。您无法在不首先清理数据的情况下重新启用该约束。