0
我有一個由實體框架代碼優先生成的數據庫。我有一張有11000行和5列的表格。插入SQL Server數據庫時會生成一個已經存在的密鑰,爲什麼?
列Id
是主鍵:
在插入件從一個應用程序(使用EF),我得到一個錯誤的第一時間;經過一番研究,我到了數據庫,以手工插入一條記錄,看看它是否工作,我得到這個錯誤:
所有列外鍵和值1存在於每個。
有人能告訴我爲什麼我得到這個錯誤?
就像我說的,表已經有11000行,在選擇查詢時沒有錯誤,在更新時沒有錯誤,在插入數據庫生成的主鍵過程中是不正確的!
鑰匙10987存在!
什麼是「DBCC CHECKIDENT('CandidatePositionStatus',NORESEED);」給你?它只是讓我們知道該表格當前的身份值。也。 「SELECT MAX(Id)FROM CandidatePositionStatus」給你什麼? – Bill
這是結果:「檢查身份信息:當前身份值'10987',當前列值'11000'。 DBCC執行完成。如果DBCC打印錯誤消息,請聯繫您的系統管理員。 –
由於某種原因,您的ID已關閉。所以當你添加一條新記錄時,它試圖重用一個現有的記錄。使用「DBCC CHECKIDENT('CandidatePositionStatus',RESEED,11000);」所以它嘗試插入的下一個id值應該是11001,一個新的值。 – Bill