Kaedah Mendapatkan Nilai Identiti Pelayan SQL: Panduan Komprehensif
Apabila bekerja dengan jadual SQL Server yang mengandungi lajur identiti, mendapatkan semula nilai identiti yang baru dijana selepas operasi sisipan adalah penting. Panduan ini meneroka pelbagai fungsi dan teknik yang tersedia untuk tujuan ini: @@IDENTITY
, IDENT_CURRENT
, SCOPE_IDENTITY()
dan klausa OUTPUT
.
Memahami Pilihan
Setiap kaedah menawarkan tahap skop dan kebolehpercayaan yang berbeza:
@@IDENTITY
: Fungsi ini mengembalikan nilai identiti terakhir yang dijana dalam sesi semasa, tanpa mengira jadual atau pernyataan tertentu. Walaupun mudah digunakan, skopnya yang luas menjadikannya mudah terdedah kepada ralat jika berbilang sisipan berlaku dalam sesi yang sama. Gunakan dengan berhati-hati.
IDENT_CURRENT('tableName')
: Fungsi ini menyasarkan secara khusus jadual tertentu (tableName
), mendapatkan semula nilai identiti terakhir yang dijana untuk jadual itu merentas semua sesi dan skop. Ia kurang kerap digunakan tetapi memberikan tahap kekhususan yang lebih tinggi daripada @@IDENTITY
.
SCOPE_IDENTITY()
: Ini biasanya kaedah pilihan. Ia mengembalikan nilai identiti terakhir yang dijana dalam sesi semasa dan skop semasa (biasanya, kumpulan semasa atau prosedur tersimpan). Ini memberikan pengasingan dan ketepatan yang lebih baik berbanding @@IDENTITY
.
OUTPUT
Klausa: Klausa OUTPUT
, yang digunakan dengan pernyataan INSERT
, menyediakan cara yang berkuasa dan boleh dipercayai untuk menangkap nilai identiti semua baris yang disisipkan. Baris yang disisipkan ditulis pada jadual sementara atau pembolehubah jadual, membolehkan anda menanyakan secara langsung nilai identiti. Ini amat berfaedah apabila berurusan dengan rancangan pelaksanaan selari. Walau bagaimanapun, ambil perhatian bahawa klausa OUTPUT
melaksanakan sebelum mencetus, bermakna ia tidak akan mencerminkan nilai identiti yang dijana oleh pencetus.
Memilih Kaedah yang Betul
Untuk kebanyakan senario, SCOPE_IDENTITY()
menawarkan keseimbangan kesederhanaan dan kebolehpercayaan yang terbaik. @@IDENTITY
harus dielakkan melainkan skopnya yang lebih luas diperlukan secara eksplisit. IDENT_CURRENT('tableName')
menyediakan pendekatan yang lebih khusus apabila diperlukan, dan klausa OUTPUT
adalah berharga untuk keteguhannya, terutamanya dalam senario yang kompleks atau apabila bekerja dengan pemprosesan selari. Pilihan akhirnya bergantung pada keperluan khusus permohonan anda dan potensi untuk operasi serentak.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Identiti Baru Dijana dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!