在两个表之间添加关系时如何将NOCHECK添加到MSSMS?

时间:2011-11-20 00:36:28

标签: sql-server-2005 sql-server-2008

我正在尝试在2个表之间添加关系,但是我得到“ALTER TABLE语句与FOREIGN KEY约束冲突”错误。

这是因为其中一个表中的某些数据与另一个表中的数据不匹配。

我想添加NOCHECK选项,以便它不会检查数据是否准确。我怎么能用MSSMS做到这一点?

示例:

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Column_Definition SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Tabelform_Answers ADD CONSTRAINT
    FK_Tabelform_Answers_Column_Definition FOREIGN KEY
    (
    column_id
    ) REFERENCES dbo.Column_Definition
    (
    id
    ) ON UPDATE  NO ACTION 
     ON DELETE  NO ACTION 

GO
ALTER TABLE dbo.Tabelform_Answers SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

1 个答案:

答案 0 :(得分:1)

查询:

ALTER TABLE dbo.Tabelform_Answers WITH NOCHECK
   ADD CONSTRAINT FK_Tabelform_Answers_Column_Definition
   FOREIGN KEY ( column_id )
   REFERENCES dbo.Column_Definition ( id )
   ON UPDATE NO ACTION
   ON DELETE NO ACTION

参考ALTER TABLE

上的MSDN文章