无法在具有唯一索引的对象中插入重复的键行

时间:2014-03-05 21:29:38

标签: sql sql-server database

我正在尝试运行以下查询:

update OAR.oa_AcademicHead
set  personid=15857
where personid=1234

但我收到了错误:

Cannot insert duplicate key row in object 'OAR.oa_AcademicHead' with unique index 'IX_oa_AcademicHead_personid'.
The statement has been terminated.

可以做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:11)

表中已存在personid15857的行。该列上的唯一索引阻止您使用相同的personid提交另一条记录(更新实际上是删除和插入)。

在运行查询之前,您必须先删除具有该ID的现有人员。*

*免责声明:确保这实际上是您想要做的;注意它可能引起的问题。

答案 1 :(得分:0)

如果在使用ASP.NET MVC时出现错误,请执行以下操作:

db.Entry(personObject).State = EntityState.Modified;
db.Entry(personObject).Property(x => x.personid).IsModified = false;
db.SaveChanges();