SQL更新:无法更改第一条记录的复合键值之一
|
在MSSQL Server中,我有一个带有复合主键(StudentID,CourseID)的StudentCourse表。我正在尝试将所选的学生更改为另一门课程。每个课程组的一个学生记录阻止我进行“ 0”操作。
StudentID CourseID
1 1
1 2
1 3
2 2
2 3
2 4
我可以将(1、2),(1、3)记录的CourseID更新为5,但是不能将(1、1)记录的CourseID更新为5。类似地,我可以更新(2、2 ),(2,3)记录的CourseID为5,但我无法将(2,4)记录的CourseID更新为5。
这样的CourseID组只有一条记录阻止我更改其CourseID字段。我收到以下错误。
违反PRIMARY KEY约束
\'PK_StudentCourse \'。无法插入
对象中的重复键
\'StudentCourse \'。该声明有
已终止。
我不知道这是每个组的第一条记录还是最后一条记录都禁止我更改CourseID。我确定StudentCourse表中没有CourseID = 5的记录,并且Course表中有CourseID为5的课程记录。
任何帮助,将不胜感激。
没有找到相关结果
已邀请:
2 个回复
素汞读
我在以下位置添加测试数据:
我执行您描述的更新:
我可以看到这些工作正常。 尝试了解您所做的不同操作,您会找到问题的原因。
哩翔购
当然,我的查询违反了没有CourseID标准的主键规则。伙伴们,感谢您的宝贵时间。