Student表- 无法添加约束CK_Student。 ALTER TABLE 语句与 CHECK 约束CK_Student冲突。该冲突发生于数据库studentScore表dboStudent column Sdept。怎么改
这个错误提示是因为在添加 CHECK 约束时,约束条件与已经存在的数据冲突导致的。解决方法有以下几种:
-
删除已经存在的数据,然后再添加 CHECK 约束。
-
修改 CHECK 约束的条件,使其不与已经存在的数据冲突。
-
先禁用 CHECK 约束,添加数据后再启用 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;
``
原文地址: http://www.cveoy.top/t/topic/diRm 著作权归作者所有。请勿转载和采集!