Lỗi SqlException: Cannot insert explicit value for identity column in table ‘Accounts’ when IDENTITY_INSERT is set to OFF.
Thứ Tư, 05/07/2023 · 3 phút đọc
Lỗi này xảy ra khi bạn cố gắng chèn một giá trị rõ ràng cho cột identity (cột khóa chính có tính chất tự động tăng) trong bảng ‘Accounts’ trong khi tùy chọn IDENTITY_INSERT đã được tắt (OFF).
Để khắc phục lỗi này, bạn có thể thực hiện các bước sau:
- Xác định xem cột khóa chính “UserID” trong bảng “Accounts” đã được cấu hình là cột identity (IDENTITY) hay chưa. Nếu chưa, hãy chắc chắn rằng bạn đã thiết lập đúng tính chất tự động tăng cho cột này.
- Kiểm tra xem trong mã logic của bạn có chỗ nào mà bạn đang cố gắng chèn giá trị rõ ràng cho cột identity của bảng “Accounts”. Nếu có, hãy xóa dòng mã đó và cho phép cơ sở dữ liệu tự động tăng giá trị khóa chính.
- Kiểm tra xem trong cơ sở dữ liệu của bạn có bảng “Accounts” khác đang sử dụng tính năng IDENTITY_INSERT và tắt nó (SET IDENTITY_INSERT TableName OFF). Nếu có, hãy đảm bảo rằng bạn đã tắt IDENTITY_INSERT cho bảng “Accounts” trước khi thực hiện lệnh chèn.
- Kiểm tra xem có một phiên làm việc trước không thành công trong quá trình thêm người dùng vào bảng “Accounts” và giá trị của cột identity không được đặt lại. Điều này có thể dẫn đến việc cố gắng chèn một giá trị trùng lặp vào cột identity. Trong trường hợp này, bạn có thể xóa bản ghi thử nghiệm không thành công hoặc thiết lập lại giá trị khóa chính của nó để tránh trùng lặp.
- Kiểm tra xem trong mã logic của bạn có thực hiện các tùy chọn đặc biệt nào liên quan đến tính chất tự động tăng và IDENTITY_INSERT trong quá trình thêm người dùng vào bảng “Accounts”. Đảm bảo rằng bạn không gán trực tiếp giá trị cho cột identity và không cố gắng bật IDENTITY_INSERT khi không cần thiết.
Nếu sau khi kiểm tra và thực hiện các bước trên mà vẫn gặp phải lỗi này, hãy xem xét cung cấp thêm thông tin về mã logic và cấu trúc của bạn để chúng tôi có thể cung cấp hỗ trợ chi tiết hơn.
- Ảnh đại diện bài viết -
