Menyelesaikan masalah Sisipan Lajur Identiti dalam Pelayan SQL
Menghadapi isu memasukkan nilai ke dalam lajur identiti dalam SQL Server? Panduan ini menerangkan ralat biasa dan menyediakan penyelesaian yang mudah.
Masalahnya:
Percubaan untuk memasukkan baris dengan nilai yang ditentukan untuk lajur identiti selalunya mengakibatkan ralat berikut:
Pelayan: Msg 544, Tahap 16, Negeri 1, Baris 1
Tidak boleh memasukkan nilai eksplisit untuk lajur identiti dalam jadual 'jadual' apabila IDENTITY_INSERT ditetapkan kepada MATI.
Memahami Ralat:
Lajur identiti menjana nilai jujukan unik secara automatik. Ralat timbul kerana IDENTITY_INSERT
, secara lalai, ditetapkan kepada OFF
. Tetapan ini menghalang penyerahan nilai terus kepada lajur identiti, memastikan pangkalan data mengekalkan kawalan ke atas jujukan.
Penyelesaian:
Untuk memasukkan nilai tertentu ke dalam lajur identiti, anda perlu membatalkan kelakuan lalai ini buat sementara waktu. Ikuti langkah ini:
IDENTITY_INSERT
: Gunakan arahan ini untuk membenarkan pemasukan nilai eksplisit buat sementara waktu:SET IDENTITI_INSERT Jadual1 DIHIDUPKAN
INSERT
pernyataan:MASUKKAN KE DALAM Jadual1 (OperationID, OpDescription, FilterID)
NILAI (20, 'Kemas Kini Hierarki', 1)
IDENTITY_INSERT
: Selepas pemasukan, lumpuhkan segera IDENTITY_INSERT
untuk memulihkan tingkah laku lalai:SET IDENTITI_INSERT Jadual1 DIMATIKAN
Proses ini membolehkan anda mengurus nilai lajur identiti di bawah keadaan tertentu sambil mengekalkan integriti data. Ingat untuk sentiasa melumpuhkan IDENTITY_INSERT
sebaik sahaja pemasukan selesai.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memasukkan Nilai ke dalam Lajur Identiti Saya dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!