Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Antara @@IDENTITY, SCOPE_IDENTITY(), dan OUTPUT untuk Mendapatkan Nilai Identiti Utama Utama?

Bagaimana untuk Memilih Antara @@IDENTITY, SCOPE_IDENTITY(), dan OUTPUT untuk Mendapatkan Nilai Identiti Utama Utama?

Mary-Kate Olsen
Lepaskan: 2025-01-03 04:12:38
asal
438 orang telah melayarinya

How to Choose Between @@IDENTITY, SCOPE_IDENTITY(), and OUTPUT for Retrieving Primary Key Identity Values?

Mendapatkan Identiti Terakhir: @@IDENTITY, SCOPE_IDENTITY(), OUTPUT dan Lagi

Apabila mendapatkan semula nilai medan identiti kunci utama selepas sisipan, pembangun sering menggunakan pelbagai kaedah. Artikel ini menyelidiki perbezaan dan kesesuaian kaedah @@IDENTITY, SCOPE_IDENTITY(), dan OUTPUT.

@@IDENTITY vs. SCOPE_IDENTITY()

@@IDENTITY mengembalikan nilai IDENTITY terakhir yang dijana untuk mana-mana jadual, tanpa mengira skop. Ia tidak selamat skop, bermakna ia mungkin mengembalikan identiti daripada sisipan yang dicetuskan atau pernyataan lain dalam sesi semasa.

SCOPE_IDENTITY() berkelakuan serupa, tetapi ia mengehadkan nilai yang dikembalikan kepada pernyataan semasa dan skop sambungan. Oleh itu, ia hanya mendapatkan semula identiti yang dijana semasa penyataan melaksanakan.

Kaedah OUTPUT

Klausa OUTPUT dalam pernyataan INSERT mengembalikan jadual yang mengandungi data yang dimasukkan ke dalam jadual. Ini termasuk nilai IDENTITI yang dijana:

INSERT INTO #Testing (ID, somedate)
OUTPUT INSERTED.*
DEFAULT VALUES;
Salin selepas log masuk

Pemilihan Kaedah

Kaedah yang sesuai bergantung pada keperluan khusus:

  • @@IDENTITI: Sesuai untuk mendapatkan semula identiti terjana terakhir merentas semua jadual dalam semasa sesi.
  • SKOP_IDENTITI(): Berguna apabila memerlukan identiti daripada kenyataan dan skop semasa sahaja.
  • OUTPUT: Ideal untuk mendapatkan semula bukan sahaja identiti tetapi juga nilai lain yang diselitkan.

Skop Keselamatan

Kaedah OUTPUT tidak secara eksplisit selamat skop. Ia mendapatkan semula identiti yang dijana dalam skop semasa, tetapi jika identiti tersebut diberikan kepada jadual lain, ia mungkin mengembalikannya juga. Untuk keselamatan skop yang ketat, gunakan SCOPE_IDENTITY().

Nota Tambahan

  • IDENT_CURRENT(jadual): Mengembalikan nilai identiti terkini yang dijana untuk jadual tertentu, tanpa mengira sambungan atau skop. Walau bagaimanapun, ia digunakan terutamanya dalam kod warisan.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Antara @@IDENTITY, SCOPE_IDENTITY(), dan OUTPUT untuk Mendapatkan Nilai Identiti Utama Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan