Cách khắc phục lỗi 'Không thể chèn giá trị rõ ràng cho cột nhận dạng trong bảng khi IDENTITY_INSERT được đặt thành TẮT'?



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Cột khóa chính thường được đặt thành tự động tăng khi xây dựng cơ sở dữ liệu SQL Server. Giới hạn IDENTITY được bật cho cột khóa chính để thực hiện việc này. Vị trí bắt đầu và bước tăng dần được chuyển sang cột IDENTITY dưới dạng tham số. Sau đó, bất cứ khi nào một bản ghi mới được thêm vào và chèn danh tính được đặt thành TẮT, giá trị của cột IDENTITY sẽ tăng lên theo bước được xác định trước thường là một số. Hơn nữa, thuộc tính IDENTITY INSERT chỉ được đặt thành BẬT cho một bảng trong một phiên duy nhất.



Trong bài viết này, chúng ta sẽ thảo luận về lỗi “Không thể chèn giá trị rõ ràng cho cột nhận dạng trong bảng

khi IDENTITY_INSERT được đặt thành TẮT ” như hình bên dưới.



Tắt “CHÈN NHẬN DẠNG” và chèn dữ liệu không có “ID KHÓA CHÍNH” vào câu lệnh chèn



Lỗi phát sinh khi người dùng đã đặt “ID_insert” thành “TẮT”. Sau đó, cố gắng chèn dữ liệu vào cột khóa chính của bảng một cách rõ ràng. Điều này có thể được giải thích bằng cách sử dụng ví dụ dưới đây.

Cơ sở dữ liệu và tạo bảng:

Đầu tiên, tạo một cơ sở dữ liệu có tên là “appuals”.

Tạo một cơ sở dữ liệu có tên là “appuals”.



Tạo một bảng có tên 'người' bằng cách sử dụng mã sau. Bảng được xây dựng bằng cách sử dụng “NHẬN DẠNG CHÍNH CHÍNH”

TẠO người trong BẢNG (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Tạo một bảng có tên 'người'

Cú pháp để thiết lập “Ident_insert off | trên':

Các “Thiết lập nhận dạng_tắt | trên' sẽ giúp chúng tôi giải quyết lỗi này. Cú pháp chính xác cho câu lệnh này như dưới đây.

ĐẶT IDENTITY_INSERT. .
TRÊN

Trong khi đối số đầu tiên là tên của cơ sở dữ liệu chứa bảng. Đối số thứ hai cho thấy là lược đồ chứa bảng đó có giá trị nhận dạng phải được đặt thành TRÊN hoặc là TẮT . Đối số thứ ba

là bảng có cột nhận dạng.

Về cơ bản, có hai cách khác nhau để chèn dữ liệu vào bảng mà không bị lỗi. Đây được coi là giải pháp cho lỗi này và được thảo luận dưới đây.

Lỗi 1: Đặt ID_insert TẮT

Trong trường hợp đầu tiên, chúng tôi sẽ chèn dữ liệu vào bảng với “CHÈN NHẬN DẠNG” đặt thành 'TẮT' . Vì vậy, nếu ID có trong câu lệnh INSERT, bạn sẽ gặp lỗi “Không thể chèn giá trị rõ ràng cho cột nhận dạng trong bảng‘ người ’khi IDENTITY_INSERT được đặt thành TẮT”.

Thực thi đoạn mã sau trong tab truy vấn.

thiết lập danh tính người_chèn; chèn vào người (ID, first_name, last_name) giá trị (3, 'Sadia