SQL Server menawarkan beberapa cara untuk mendapatkan identiti baris yang baru dimasukkan. Setiap kaedah mempunyai kekuatan dan kelemahannya, menjadikan pilihan bergantung pada keperluan khusus anda. Panduan ini menjelaskan perbezaan antara @@IDENTITY
, IDENT_CURRENT
, SCOPE_IDENTITY
dan klausa OUTPUT
.
Membandingkan @@IDENTITY
, IDENT_CURRENT
dan SCOPE_IDENTITY
@@IDENTITY
: Fungsi ini mengembalikan nilai identiti terakhir yang dijana dalam sesi semasa, tanpa mengira jadual. Berguna untuk mendapatkan ID daripada mana-mana jadual dalam sesi, tetapi berhati-hati: ia boleh dipengaruhi oleh pencetus atau operasi serentak.
IDENT_CURRENT
: Mendapatkan semula nilai identiti terakhir yang dijana untuk jadual khusus, tanpa mengira sesi atau skop. Sesuai apabila anda memerlukan ID untuk jadual tertentu, walaupun anda tidak memasukkan baris secara langsung.
SCOPE_IDENTITY
: Mengembalikan nilai identiti terakhir yang dijana dalam sesi dan skop semasa. Biasanya pilihan terbaik untuk mendapatkan semula ID baris yang dimasukkan baru-baru ini kerana ia diasingkan daripada proses serentak lain dalam pernyataan yang sama.
Fasal OUTPUT
: Alternatif Berkuasa
Klausa OUTPUT
menyediakan cara terus untuk mengakses baris yang disisipkan daripada pernyataan INSERT
. Anda boleh menangkap nilai identiti, bersama-sama dengan data lajur lain, ke dalam pembolehubah jadual atau jadual sementara. Walaupun mudah, ia lebih kompleks sedikit untuk digunakan dan mengembalikan data walaupun kenyataan itu digulung semula. Yang penting, ia melaksanakan sebelum pencetus, jadi ia tidak akan mendapatkan semula nilai identiti yang dijana pencetus. Walau bagaimanapun, ia menawarkan satu-satunya cara yang boleh dipercayai untuk mendapatkan nilai identiti apabila menggunakan pemprosesan selari, menjamin ketersediaannya tanpa mengira pelan pelaksanaan.
Atas ialah kandungan terperinci Kaedah Pengambilan Nilai Identiti Pelayan SQL yang manakah (@@IDENTITY, IDENT_CURRENT, SKOP_IDENTITY, OUTPUT Klausa) Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!