Microsoft OLE DB Provider for SQL Server 錯誤 '80040e2f'
無法將值 NULL 插入欄位 'id',資料表 'web.dbo.dingdan';欄位不允許 NULL。INSERT 失敗。
建立資料表時,id 欄位未設定為 身分識別欄位,導致插入時未自動產生值,嘗試寫入 NULL 而失敗。
id 欄列。
-- 1. 新增暫存欄位
ALTER TABLE dbo.dingdan ADD new_id INT IDENTITY(1,1);
-- 2. 刪除舊欄位 (需先移除相依條件約束)
ALTER TABLE dbo.dingdan DROP COLUMN id;
-- 3. 重新命名
EXEC sp_rename 'dbo.dingdan.new_id', 'id', 'COLUMN';
-- 4. 加回主鍵
ALTER TABLE dbo.dingdan ADD CONSTRAINT PK_dingdan PRIMARY KEY (id);
ID INT IDENTITY(1,1) PRIMARY KEY。[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]。啟用身分識別欄位後,插入資料無需指定 id,資料庫自動產生唯一遞增值,徹底解決 NULL 插入錯誤。