繁体   English   中英

ALTER TABLE语句与FOREIGN KEY约束冲突

[英]The ALTER TABLE statement conflicted with the FOREIGN KEY constrain

我是一个新的SQL脚本,我在我的一个脚本中遇到了错误。 有问题的部分是:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE dbo.WorkspaceSettings
(
    Id INT NOT NULL IDENTITY PRIMARY KEY ,
        ReportColorRGB1 VARCHAR(15) NOT NULL DEFAULT '61,105,138' ,
    ReportColorRGB2 VARCHAR(15) NOT NULL DEFAULT '180,210,121' 
)

GO

ALTER TABLE Workspace ADD WorkspaceSettingsId int NOT NULL default 1;

GO
ALTER TABLE Workspace
ADD CONSTRAINT FK_WorkspaceSettings_Workspace
FOREIGN KEY (WorkspaceSettingsId)
REFERENCES WorkspaceSettings(Id);
GO

并收到以下错误消息:

Msg 547,Level 16,State 0,Line 1
ALTER TABLE语句与FOREIGN KEY约束“FK_WorkspaceSettings_Workspace”冲突。 冲突发生在数据库“ClearRisk2_0”,表“dbo.WorkspaceSettings”,列“Id”中。

有人可以告诉我哪里出错了吗?

您在WorkspaceSettings表中尚未存在为Workspace.WorkspaceSettingsId列指定的默认值1,因此FK违规。

只需在ALter table sattement后添加以下短语:

with nocheck

所以,它将是:

Use Database_name

Go
    ALTER TABLE ResultScan with nocheck
      ADD CONSTRAINT FK_ResultScan_ListVM FOREIGN KEY (TypeAnVirus)     
      REFERENCES ListVM (Id)     
      ON DELETE CASCADE    
      ON UPDATE CASCADE    
   ;    
  GO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM