Bagaimana Memperbaiki Ralat ‘Tidak dapat memasukkan nilai eksplisit untuk lajur identiti dalam jadual apabila IDENTITY_INSERT ditetapkan ke MATI’?



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Lajur kunci utama sering ditetapkan untuk kenaikan automatik semasa membina pangkalan data SQL Server. Had IDENTITI ditetapkan untuk lajur kunci utama untuk melakukan ini. Lokasi permulaan dan langkah kenaikan dipindahkan ke ruangan IDENTITI sebagai parameter. Kemudian setiap kali catatan baru ditambahkan, dan sisipan identiti ditetapkan ke NONAKTIF, nilai lajur IDENTITI akan dinaikkan dengan langkah yang telah ditentukan biasanya nombor. Lebih-lebih lagi, sifat IDENTITAS INSERT diset ke AKTIF hanya untuk satu jadual dalam satu sesi.



Dalam artikel ini, kita akan membincangkan kesalahan 'Tidak dapat memasukkan nilai eksplisit untuk lajur identiti dalam jadual

apabila IDENTITY_INSERT ditetapkan ke MATI ” seperti yang ditunjukkan di bawah.



Menghidupkan 'IDENTITY INSERT OFF', dan memasukkan data tanpa 'ID KEY PRIMARY' menjadi penyataan sisipan



Kesalahan timbul apabila pengguna telah menetapkan 'identiti_sisipkan' ke 'MATI'. Kemudian cuba memasukkan data ke dalam lajur kunci utama jadual secara eksplisit. Ini dapat dijelaskan dengan menggunakan contoh di bawah.

Pangkalan data dan pembuatan jadual:

Pertama, buat pangkalan data bernama 'appuals'.

Membuat pangkalan data bernama 'appuals'.



Buat jadual bernama 'orang' menggunakan kod berikut. Meja terbina menggunakan a 'IDENTITI UTAMA PERDANA'

BUAT JADUAL orang (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Membuat jadual bernama 'orang'

Sintaks untuk menetapkan “Identity_insert off | dihidupkan ”:

The “Tetapkan identiti_ masukkan | di ' akan membantu kami menyelesaikan ralat ini. Sintaks yang betul untuk pernyataan ini adalah seperti di bawah.

SET IDENTITY_INSERT. .
HIDUP

Manakala argumen pertama adalah nama pangkalan data di mana jadual berada. Argumen kedua menunjukkan adalah skema yang dimiliki oleh jadual tersebut yang nilai identitinya harus ditetapkan HIDUP atau MATI . Hujah ketiga

adalah jadual dengan lajur identiti.

Terdapat asasnya dua cara memasukkan data ke dalam jadual tanpa ralat. Ini dianggap sebagai penyelesaian untuk ralat ini dan dibincangkan di bawah.

Ralat 1: Tetapkan OFF_pengenalan

Dalam kes pertama, kami akan memasukkan data ke dalam jadual dengan 'MASUKKAN IDENTITI' ditetapkan untuk 'MATI' . Oleh itu, jika ID tersebut terdapat dalam penyataan INSERT, anda akan mendapat ralat 'Tidak dapat memasukkan nilai eksplisit untuk lajur identiti dalam jadual 'orang' apabila IDENTITY_INSERT ditetapkan ke MATI'.

Laksanakan kod berikut di tab pertanyaan.

tetapkan identiti_sisipkan orang; masukkan ke dalam nilai orang (ID, nama pertama, nama belakang) (3, 'Sadia