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 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.
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;
Kaedah yang sesuai bergantung pada keperluan khusus:
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().
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!