यदि आप गुंजाइश और सत्र के बीच अंतर को समझते हैं तो इन तरीकों को समझना बहुत आसान होगा।
एडम एंडरसन द्वारा एक बहुत अच्छा ब्लॉग पोस्ट इस अंतर का वर्णन करता है:
सत्र का मतलब है कि वर्तमान कनेक्शन जो कमांड को निष्पादित कर रहा है।
स्कोप का अर्थ है एक कमांड का तत्काल संदर्भ। प्रत्येक संग्रहीत कार्यविधि कॉल अपने स्वयं के दायरे में निष्पादित होती है, और नेस्टेड कॉल निष्पादन प्रक्रिया के दायरे में एक नेस्टेड दायरे में निष्पादित होती है। इसी तरह, किसी एप्लिकेशन या SSMS से निष्पादित SQL कमांड अपने दायरे में निष्पादित होता है, और यदि वह कमांड किसी भी ट्रिगर को फायर करता है, तो प्रत्येक ट्रिगर अपने स्वयं के नेस्टेड दायरे में निष्पादित होता है।
इस प्रकार तीन पहचान पुनर्प्राप्ति विधियों के बीच अंतर इस प्रकार हैं:
@@identity
इस सत्र में उत्पन्न अंतिम पहचान मान लेकिन कोई गुंजाइश नहीं है।
scope_identity()
इस सत्र और इस दायरे में उत्पन्न अंतिम पहचान मान लौटाता है ।
ident_current()
किसी भी सत्र और किसी भी क्षेत्र में किसी विशेष तालिका के लिए उत्पन्न अंतिम पहचान मूल्य देता है ।