2016-05-24 13 views
0

我有一個由實體框架代碼優先生成的數據庫。我有一張有11000行和5列的表格。插入SQL Server數據庫時會生成一個已經存在的密鑰,爲什麼?

Id是主鍵:

table design

在插入件從一個應用程序(使用EF),我得到一個錯誤的第一時間;經過一番研究,我到了數據庫,以手工插入一條記錄,看看它是否工作,我得到這個錯誤:

enter image description here

所有列外鍵和值1存在於每個。

有人能告訴我爲什麼我得到這個錯誤?

就像我說的,表已經有11000行,在選擇查詢時沒有錯誤,在更新時沒有錯誤,在插入數據庫生成的主鍵過程中是不正確的!

鑰匙10987存在!

enter image description here

+0

什麼是「DBCC CHECKIDENT('CandidatePositionStatus',NORESEED);」給你?它只是讓我們知道該表格當前的身份值。也。 「SELECT MAX(Id)FROM CandidatePositionStatus」給你什麼? – Bill

+0

這是結果:「檢查身份信息:當前身份值'10987',當前列值'110​​00'。 DBCC執行完成。如果DBCC打印錯誤消息,請聯繫您的系統管理員。 –

+1

由於某種原因,您的ID已關閉。所以當你添加一條新記錄時,它試圖重用一個現有的記錄。使用「DBCC CHECKIDENT('CandidatePositionStatus',RESEED,11000);」所以它嘗試插入的下一個id值應該是11001,一個新的值。 – Bill

回答

4

您的ID是關閉的一些原因。所以當你添加一條新記錄時,它試圖重用一個現有的記錄。使用「DBCC CHECKIDENT('CandidatePositionStatus',RESEED,11000);」所以它嘗試插入的下一個id值應該是11001,一個新的值。

相關問題