Penyelesaian Masalah Sisipan Identiti SQL Server 2008: Panduan Lengkap
Memasukkan data ke dalam jadual dengan lajur identiti dalam SQL Server 2008 kadangkala boleh menyebabkan ralat yang berkaitan dengan sisipan identiti dilumpuhkan. Panduan ini menerangkan masalah dan menyediakan penyelesaian.
Memahami Ralat "IDENTITY_INSERT is OFF"
Tetapan IDENTITY_INSERT
menentukan sama ada anda boleh menetapkan nilai secara manual kepada lajur identiti. Apabila ia MATI (lalai), pangkalan data menjana nilai ini secara automatik. Mencuba memasukkan nilai tertentu semasa IDENTITY_INSERT
DIMATIKAN mengakibatkan ralat.
Mendayakan Sisipan Identiti: Kaedah yang Betul
Untuk mendayakan sisipan identiti dalam SQL Server 2008, gunakan arahan ini, menggantikan Database.dbo.Baskets
dengan pangkalan data dan nama jadual anda:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
Mengapa Pertanyaan Mungkin Masih Gagal
Walaupun selepas menjalankan arahan di atas, anda mungkin menghadapi ralat. Ini kerana perubahan itu mungkin tidak terpakai pada transaksi semasa. Untuk memastikan ia berkuat kuasa, bungkus penyata sisipan anda dalam blok transaksi:
<code class="language-sql">BEGIN TRANSACTION; SET IDENTITY_INSERT Database.dbo.Baskets ON; -- Your INSERT statement here COMMIT TRANSACTION;</code>
Menggunakan SQL Server Management Studio (SSMS)
Sebagai alternatif, anda boleh mendayakan sisipan identiti melalui SSMS. Klik kanan jadual anda, pilih "Reka Bentuk", pergi ke tab "Spesifikasi Identiti" dan tandakan "Benarkan Sisipan Identiti."
Ringkasan
Berjaya memasukkan data ke dalam lajur identiti memerlukan pendayaan IDENTITY_INSERT
dalam transaksi. Menggunakan sintaks yang betul dan memahami konteks transaksi adalah kunci untuk menyelesaikan isu SQL Server 2008 biasa ini.
Atas ialah kandungan terperinci Mengapa Sisipan Identiti SQL Server 2008 Saya Gagal Walaupun Selepas Mendayakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!