插入的SQL Server数据库生成一个已存在的密钥,为什么?

时间:2016-05-24 00:31:03

标签: sql sql-server database entity-framework

我有一个由实体框架代码生成的数据库。我有一个11000行和5列的表。

Id是主键:

table design

在从应用程序插入(使用EF)时,我第一次收到错误;经过一些研究后,我去了数据库,手动插入一条记录,看看它是否正常工作,我得到了这个错误:

enter image description here

所有列都是外键,每个列都存在值1。

有人能告诉我为什么会收到这个错误吗?

就像我说的那样,表已经有11000行了,选择查询时没有错误,更新时没有错误,插入期间数据库生成的主键不正确!

密钥10987存在!

enter image description here

1 个答案:

答案 0 :(得分:4)

出于某种原因,你的身份证已关闭。因此,当您添加新记录时,它会尝试重用现有记录。使用" DBCC CHECKIDENT(' CandidatePositionStatus',RESEED,11000);"所以它试图插入的下一个id值应该是11001,一个新值。