Penjelasan terperinci tentang IDENTITY_INSERT dalam SQL Server 2008
Dalam SQL Server, IDENTITY_INSERT
ialah tetapan utama yang menentukan sama ada pangkalan data menerima nilai eksplisit untuk lajur identiti. Apabila ditetapkan kepada OFF, pangkalan data secara automatik menjana nilai untuk lajur ini semasa operasi INSERT. Tetapi dalam beberapa kes, anda mungkin perlu menetapkan IDENTITY_INSERT
kepada HIDUP untuk memasukkan nilai secara manual.
Mengapa melumpuhkan dan mendayakan IDENTITY_INSERT?
Sebab biasa untuk melumpuhkan IDENTITY_INSERT
adalah untuk menguatkuasakan integriti data. Dengan menghalang pemasukan nilai eksplisit, pangkalan data memastikan bahawa nilai ID berturut-turut dijana, dengan itu mengurangkan risiko entri pendua. Walau bagaimanapun, untuk beberapa tugas tertentu, seperti mengimport data daripada sumber luaran, anda mungkin perlu menetapkan nilai identiti secara manual.
Dayakan IDENTITY_INSERT menggunakan pertanyaan SQL
Untuk mendayakan IDENTITY_INSERT
dalam SQL Server 2008, laksanakan pertanyaan berikut:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
Ganti "Pangkalan Data" dan "dbo" dengan pangkalan data dan nama skema yang sepadan. Selepas melaksanakan pertanyaan ini, anda boleh meneruskan dengan memasukkan manual.
Pengendalian didayakan IDENTITY_INSERT dalam kod
Walaupun jika menggunakan pertanyaan didayakan IDENTITY_INSERT
, jika anda masih menerima ralat semasa operasi INSERT, ia mungkin disebabkan oleh kod aplikasi. Pastikan kod anda tidak cuba menetapkan lajur identiti secara eksplisit. Apabila IDENTITY_INSERT
ditetapkan kepada MATI, pangkalan data secara automatik memberikan nilai tanpa mengira nilai eksplisit yang dinyatakan dalam kod.
Ingat, selepas melengkapkan pemasukan manual, pastikan anda mengembalikan IDENTITY_INSERT
kepada MATI untuk memulihkan integriti data. Lumpuhkannya menggunakan pertanyaan berikut:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets OFF</code>
Atas ialah kandungan terperinci Bila dan Bagaimana Anda Harus Menggunakan SQL Server IDENTITY_INSERT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!