2010-12-07 105 views
8

我只是嘗試將值插入到數據庫中,並且工作。現在我再次插入並且出現相同主鍵的錯誤。無法通過SQL Server Express Management Studio設置自動增量?

我找不到任何選項將其更改爲自動增量。

我正在通過Linq-To-Sql更新表。

User u = new User(email.Text, HttpContext.Current.Request.UserHostAddress, 
             CalculateMD5Hash(password.Text)); 
db.Users.InsertOnSubmit(g); 
db.SubmitChanges(); 

我沒有填寫user_id,它第一次運行良好。它變成了零。 試圖添加第二個用戶,它想要再次使ID 0。

我可以查詢數據庫,並要求最高的ID,但是這要遠,如果你知道自動遞增。

我該如何開啓此功能?我所能找到的都是創建表格的腳本。我想保留現有的表格並簡單地編輯它。

回答

20

如何您的LINQ到SQL模型中定義?檢查user_id列的屬性 - 它們設置爲?

alt text

在你的LINQ到SQL模式,一定有Auto Generated Value設置爲true,Auto-Sync設置爲OnInsert,服務器數據類型也應符合您的設置(INT IDENTITY),

在SQL Server Management Studio中,您需要將user_id列定義爲INT IDENTITY類型 - 在視覺表設計器中,您需要在此處設置此屬性:

alt text

+0

謝謝,這做到了。 – KdgDev 2010-12-14 15:09:19

1

它是零,因爲你有一個主鍵列類型整數。要使用自動遞增,設置表標識列的ID(表中的屬性中選擇)

0

或者你也可以手動增加USER_ID,並把它傳遞給插入功能,如果你不能改變屬性/表字段描述

相關問題