Bagaimana cara Memperbaiki Kesalahan 'Tidak dapat memasukkan nilai eksplisit untuk kolom identitas dalam tabel ketika IDENTITY_INSERT diatur ke OFF'?



Coba Instrumen Kami Untuk Menghilangkan Masalah

Kolom kunci utama sering kali disetel ke kenaikan otomatis saat membuat database SQL Server. Batas IDENTITAS ditetapkan untuk kolom kunci utama untuk melakukan ini. Lokasi awal dan langkah kenaikan ditransfer ke kolom IDENTITAS sebagai parameter. Kemudian setiap kali catatan baru ditambahkan, dan penyisipan identitas diatur ke OFF, nilai kolom IDENTITAS ditingkatkan dengan langkah yang ditentukan sebelumnya biasanya angka. Selain itu, properti IDENTITAS INSERT disetel ke AKTIF hanya untuk satu tabel dalam satu sesi.



Pada artikel ini, kita akan membahas error tersebut “Tidak dapat memasukkan nilai eksplisit untuk kolom identitas dalam tabel

saat IDENTITY_INSERT disetel ke OFF ” seperti gambar dibawah.



Menonaktifkan 'IDENTITY INSERT OFF', dan memasukkan data tanpa 'PRIMARY KEY ID' ke dalam pernyataan insert



Kesalahan muncul saat pengguna menyetel 'identity_insert' ke 'OFF'. Kemudian mencoba memasukkan data ke dalam kolom kunci utama tabel secara eksplisit. Ini dapat dijelaskan dengan contoh di bawah ini.

Pembuatan database dan tabel:

Pertama, buat database bernama 'appuals'.

Membuat database bernama 'appuals'.



Buat tabel bernama 'orang' menggunakan kode berikut. Tabel yang dibangun menggunakan file “IDENTITAS KUNCI UTAMA”

BUAT TABEL orang (ID INT IDENTITAS (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Membuat tabel bernama 'orang'

Sintaks untuk menyetel “identity_insert off | di':

Itu “Setel identity_insert off | di' akan membantu kami mengatasi kesalahan ini. Sintaks yang benar untuk pernyataan ini adalah seperti di bawah ini.

ATUR IDENTITY_INSERT. .
DI

Sedangkan argumen pertama adalah nama database tempat tabel tersebut berada. Argumen kedua yang ditampilkan adalah skema yang dimiliki tabel tersebut yang nilai identitasnya harus disetel DI atau MATI . Argumen ketiga

adalah tabel dengan kolom identitas.

Pada dasarnya ada dua cara penyisipan data yang berbeda ke dalam tabel tanpa kesalahan. Ini dianggap sebagai solusi untuk kesalahan ini dan dibahas di bawah.

Kesalahan 1: Tetapkan identitas_insert MATI

Dalam kasus pertama, kami akan memasukkan data ke dalam tabel dengan ekstensi “INSERT IDENTITAS” mulai 'MATI' . Jadi, jika ID ada di pernyataan INSERT, Anda akan mendapatkan error 'Tidak dapat memasukkan nilai eksplisit untuk kolom identitas di tabel 'orang' ketika IDENTITY_INSERT disetel ke OFF'.

Jalankan kode berikut di tab kueri.

setel identity_insert person off; masukkan ke dalam nilai person (ID, first_name, last_name) (3, 'Sadia