SQL Server 2008: Mengurus Sisipan Lajur Identiti Menggunakan IDENTITY_INSERT
Dalam pangkalan data SQL Server, timbul situasi di mana anda perlu memasukkan nilai secara manual ke dalam lajur identiti. Walau bagaimanapun, IDENTITY_INSERT
dilumpuhkan secara lalai, menghalang pemasukan terus.
Memahami IDENTITY_INSERT
Ralat OFF
Percubaan untuk memasukkan nilai ke dalam lajur identiti dengan IDENTITY_INSERT
ditetapkan kepada MATI menyebabkan ralat ini:
Tidak boleh memasukkan nilai eksplisit untuk lajur identiti dalam jadual 'TableName' apabila IDENTITY_INSERT ditetapkan kepada OFF.
Ini kerana SQL Server mengurus nilai identiti unik secara automatik. Apabila IDENTITY_INSERT
DIMATIKAN, pangkalan data menjangkakan lajur identiti akan kosong, membenarkannya untuk menetapkan nilai jujukan seterusnya.
Mendayakan IDENTITY_INSERT
menggunakan SQL Server Management Studio (SSMS)
Untuk mendayakan IDENTITY_INSERT
untuk jadual tertentu dalam SSMS:
<tablename>
dengan nama jadual anda:<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
IDENTITY_INSERT
selepas itu.Menggunakan T-SQL Secara Terus
Anda juga boleh mengurus IDENTITY_INSERT
terus dalam T-SQL:
<code class="language-sql">SET IDENTITY_INSERT sometableWithIdentity ON; INSERT INTO sometableWithIdentity (IdentityColumn, col2, col3, ...) VALUES (AnIdentityValue, col2value, col3value, ...); SET IDENTITY_INSERT sometableWithIdentity OFF;</code>
Mesej Ralat Terperinci
Mesej ralat akan menentukan jadual yang terjejas, membantu dalam pengenalpastian masalah. Contohnya:
<code>Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.</code>
Dengan mendayakan sementara IDENTITY_INSERT
, anda mengawal nilai lajur identiti. Sentiasa nyahdayakannya selepas itu untuk mengekalkan integriti pangkalan data dan penjanaan identiti berurutan.
Atas ialah kandungan terperinci Bagaimana untuk Mendayakan dan Lumpuhkan IDENTITY_INSERT dalam SQL Server 2008 untuk Sisipan Lajur Identiti Terkawal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!