SQL Server 添加约束冲突解决方法 - CK_Student 约束错误
SQL Server 添加约束冲突解决方法 - CK_Student 约束错误
当您在 SQL Server 中尝试添加 CHECK 约束时,可能会遇到以下错误提示:
无法添加约束“CK_Student”。 ALTER TABLE 语句与 CHECK 约束'CK_Student'冲突。该冲突发生于数据库'studentScore',表'dbo.Student', column 'Sdept'。
该错误提示是因为在添加 CHECK 约束时,约束条件与已经存在的数据冲突导致的。解决方法有以下几种:
- 删除已经存在的数据,然后再添加 CHECK 约束。
可以使用 DELETE 语句删除表中的数据,然后再添加 CHECK 约束。例如:
DELETE FROM Student WHERE Sdept NOT IN ('计算机科学', '软件工程', '信息管理');
ALTER TABLE Student ADD CONSTRAINT CK_Student CHECK (Sdept IN ('计算机科学', '软件工程', '信息管理'));
- 修改 CHECK 约束的条件,使其不与已经存在的数据冲突。
可以使用 ALTER TABLE 语句修改 CHECK 约束的条件。例如:
ALTER TABLE Student DROP CONSTRAINT CK_Student;
ALTER TABLE Student ADD CONSTRAINT CK_Student CHECK (Sdept IN ('计算机科学', '软件工程', '信息管理', '电子信息'));
- 先禁用 CHECK 约束,添加数据后再启用 CHECK 约束。
可以使用 ALTER TABLE 语句禁用 CHECK 约束,然后添加数据后再启用 CHECK 约束。例如:
ALTER TABLE Student NOCHECK CONSTRAINT CK_Student;
INSERT INTO Student (Sno, Sname, Sdept) VALUES ('001', '张三', '物理学');
ALTER TABLE Student CHECK CONSTRAINT CK_Student;
原文地址: https://www.cveoy.top/t/topic/kFg1 著作权归作者所有。请勿转载和采集!