Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Fungsi Pengambilan Identiti Pelayan SQL yang Tepat: @@IDENTITY, SCOPE_IDENTITY(), IDENT_CURRENT(), atau OUTPUT?
Pengurusan Identiti Pelayan SQL: Memilih Fungsi yang Tepat (@@IDENTITY, SCOPE_IDENTITY(), IDENT_CURRENT(), OUTPUT)
Banyak aplikasi pangkalan data memerlukan akses kepada ID baris yang baru dimasukkan, terutamanya apabila berurusan dengan jadual yang mengandungi lajur identiti. SQL Server menawarkan beberapa cara untuk mencapai ini; setiap kaedah mempunyai kegunaan khusus dan potensi kelemahan.
@@IDENTITI: Pendapatan Identiti Seluruh Sesi
@@IDENTITY
mendapatkan semula nilai identiti terakhir yang dijana dalam sesi semasa, tanpa mengira jadual atau skop. Berhati-hati dinasihatkan: @@IDENTITY
boleh mengembalikan nilai daripada skop lain (mis., pencetus), yang berpotensi membawa kepada keputusan yang tidak tepat.
SKOP_IDENTITI(): Pengambilan Identiti Khusus Skop
SCOPE_IDENTITY()
menyediakan pendekatan yang lebih tepat, mengembalikan nilai identiti terakhir yang dijana dalam sesi dan skop semasa (biasanya pangkalan data semasa). Kebolehpercayaannya menjadikannya kaedah pilihan untuk kebanyakan senario. Skop boleh diperhalusi lagi menggunakan sintaks (n)
.
IDENT_CURRENT(): Pendapatan Identiti Khusus Jadual
IDENT_CURRENT('tableName')
mendapatkan semula nilai identiti terakhir yang dijana untuk jadual tertentu, tanpa mengira sesi atau skop. Ini berguna apabila mengakses nilai identiti daripada jadual yang tidak diubah suai dalam sesi semasa atau apabila @@IDENTITY
dan SCOPE_IDENTITY()
tidak sesuai.
Klausa OUTPUT: Pendapatan Identiti Peringkat Pernyataan
Klausa OUTPUT
dalam pernyataan INSERT
menawarkan cara terus untuk mengakses ID baris yang disisipkan dalam skop pernyataan itu. Tidak seperti @@IDENTITY
, ia mengelakkan isu silang skop. Walau bagaimanapun, ia memerlukan penggunaan pembolehubah jadual atau jadual sementara untuk menyimpan output, yang berpotensi meningkatkan kerumitan dan memberi kesan kepada prestasi. Secara kritis, ini satu-satunya kaedah yang dijamin untuk mendapatkan semula identiti dalam pelaksanaan selari.
Memilih kaedah mendapatkan semula identiti yang betul bergantung pada keperluan aplikasi tertentu. Walaupun SCOPE_IDENTITY()
biasanya disyorkan, @@IDENTITY
, IDENT_CURRENT()
dan klausa OUTPUT
menawarkan alternatif yang berharga dalam konteks tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Fungsi Pengambilan Identiti Pelayan SQL yang Tepat: @@IDENTITY, SCOPE_IDENTITY(), IDENT_CURRENT(), atau OUTPUT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!