次のエラーが表示されます。
PRIMARY KEY 制約 'PK_ss_student_grade' に違反しています。オブジェクト 'dbo.ss_student_grade' に重複するキーを挿入できません。重複キーの値は (301, 1011, 24801, 33) です。
挿入前にテーブルをチェックすると、そのような主キーを持つレコードはありません。
挿入は C# コードを介して行われ、コードが 1 回だけ実行されるようにしました。エラーが発生した後でも、テーブルを確認しても、そのような主キーを持つレコードは取得されません。
注: トリガーはテーブルへの挿入で実行されますが、ログ ファイルに書き込むだけで、データベース内のデータには影響しません。
キーが既に存在すると SQL を混乱させる原因は何ですか?
EDIT:コードは、次のことを行うプロシージャを呼び出します
insert into ss_student_grade(sg_school_code,sg_acad_year,sg_serial_no,sg_student_key,sg_original_grade,sg_grade,sg_school_grade,sg_category_type,sg_operator,sg_datetime)
select pg_school_code, pg_acad_year, et_serial_no, mep_student_key, pg_grade,pg_grade,pg_grade,'Original', SYSTEM_USER, @ExamCreationDate
from #StudentGrades
where not exists (select 1 from ss_student_grade where sg_school_code = pg_school_code and sg_acad_year = pg_acad_year and sg_serial_no = et_serial_no and sg_student_key = mep_student_key)
SQL Server 2008 R2 と Visual Studio 2010 Ultimate を使用しています