我不熟悉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'。
有人可以告诉我哪里出错了吗?
答案 0 :(得分:35)
您为Workspace.WorkspaceSettingsId
列指定的默认值1尚未存在于WorkspaceSettings
表中,因此违反了FK。
答案 1 :(得分:-1)
只需在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