Jika Anda memahami perbedaan antara ruang lingkup dan sesi maka akan sangat mudah untuk memahami metode ini.
Posting blog yang sangat bagus oleh Adam Anderson menjelaskan perbedaan ini:
Sesi berarti koneksi saat ini yang menjalankan perintah.
Lingkup berarti konteks langsung dari suatu perintah. Setiap panggilan prosedur yang tersimpan dijalankan dalam ruang lingkupnya sendiri, dan panggilan bersarang dijalankan dalam ruang lingkup bersarang dalam ruang lingkup prosedur panggilan. Demikian pula, perintah SQL yang dijalankan dari aplikasi atau SSMS dijalankan dalam cakupannya sendiri, dan jika perintah itu memicu pemicu, setiap pemicu dijalankan dalam cakupan bersarangnya sendiri.
Dengan demikian perbedaan antara tiga metode pengambilan identitas adalah sebagai berikut:
@@identity
mengembalikan nilai identitas terakhir yang dihasilkan dalam sesi ini tetapi ruang lingkup apa pun .
scope_identity()
mengembalikan nilai identitas terakhir yang dihasilkan dalam ini sesi dan ini ruang lingkup.
ident_current()
mengembalikan nilai identitas terakhir yang dihasilkan untuk tabel tertentu dalam setiap sesi dan setiap lingkup.