MSSQL Serverには、複合主キー( StudentID、CourseID )を持つテーブルStudentCourseがあります。選択した学生を別のコースに変更しようとしています。各コース グループの1 つの学生レコードが原因で、操作を実行できません。UPDATE
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グループの 1 つのレコードだけが、そのCourseIDフィールドを変更することを妨げています。次のエラーが表示されます。
PRIMARY KEY 制約 'PK_StudentCourse' に違反しています。オブジェクト 'StudentCourse' に重複するキーを挿入できません。ステートメントは終了されました。
各グループの最初または最後のレコードであるかどうかわからないため、CourseIDの変更が禁止されています。StudentCourseテーブルに CourseID = 5 のレコードがなく、Course テーブルに CourseID が 5 のコースレコードがあることは確かです。
どんな助けでも大歓迎です。