Menambah baris pada jadual dengan lajur peningkatan automatik selalunya memerlukan mendapatkan ID yang baru dijana. SQL Server menawarkan beberapa cara untuk mencapainya, masing-masing mempunyai kelebihan dan kekurangannya sendiri. Memahami perbezaan ini adalah kunci untuk memilih kaedah terbaik untuk situasi anda.
Fungsi @@IDENTITY
mengembalikan nilai identiti yang paling baru dijana merentas semua jadual dalam sesi pangkalan data semasa. Ini mudah, tetapi boleh menjadi tidak boleh dipercayai jika berbilang sisipan berlaku dalam sesi yang sama, yang berpotensi membawa kepada hasil yang salah.
SCOPE_IDENTITY()
lebih tepat. Ia mengembalikan nilai identiti terakhir yang dijana dalam sesi semasa dan skop (cth., dalam prosedur atau kelompok yang disimpan). Ini menjadikan ia umumnya pilihan paling selamat dan paling disyorkan.
IDENT_CURRENT('tableName')
secara langsung menyasarkan jadual tertentu. Ia mendapatkan semula nilai identiti terakhir yang dijana untuk jadual itu, tanpa mengira sesi atau skop. Ini berguna untuk menyemak ID terakhir yang diberikan pada jadual, walaupun tanpa sisipan terbaharu.
Pernyataan INSERT
, apabila digabungkan dengan klausa OUTPUT
, menawarkan kaedah langsung yang berkuasa. Ia membolehkan anda menangkap semua baris yang disisipkan oleh pernyataan, termasuk nilai identiti. Pendekatan ini merangkumi kenyataan itu sendiri, mengelakkan kemungkinan kekaburan. Ambil perhatian bahawa ini biasanya melibatkan memasukkan ke dalam jadual sementara atau pembolehubah jadual, yang menambahkan sedikit kerumitan.
SCOPE_IDENTITY()
ialah kaedah pilihan untuk mendapatkan nilai identiti yang baru dijana. Sifat khusus skopnya memastikan ketepatan.@@IDENTITY
hanya apabila anda memerlukan nilai identiti terakhir merentas semua skop dan menyedari potensi ralat.IDENT_CURRENT('tableName')
berguna untuk mendapatkan semula nilai identiti terakhir untuk jadual tertentu, tanpa mengira sesi atau skop.INSERT ... OUTPUT
menyediakan kecekapan dan kawalan skop tetapi memerlukan persediaan tambahan. Pertimbangkan faedahnya terhadap kerumitan tambahan.Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Identiti Baris yang Disisipkan dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!