यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं...
@@ पहचान
किसी कनेक्शन पर उत्पादित अंतिम पहचान मान लौटाता है, चाहे वह तालिका कुछ भी हो, जिसने मूल्य का उत्पादन किया हो, और मूल्य उत्पन्न करने वाले कथन के दायरे की परवाह किए बिना। @@ पहचान आपके वर्तमान सत्र में तालिका में दर्ज किया गया अंतिम पहचान मान लौटाएगा। @@ पहचान वर्तमान सत्र तक सीमित है और वर्तमान दायरे तक सीमित नहीं है। उदाहरण के लिए, यदि आपके पास किसी तालिका पर एक ट्रिगर है जो किसी अन्य तालिका में एक पहचान बनाने का कारण बनता है, तो आपको वह पहचान मिल जाएगी जो पिछली बार बनाई गई थी, भले ही वह ट्रिगर था जिसने इसे बनाया था।
SCOPE_IDENTITY ()
किसी कनेक्शन पर और उसी दायरे में एक कथन द्वारा उत्पादित अंतिम पहचान मान लौटाता है, चाहे वह तालिका कुछ भी हो, जो मूल्य उत्पन्न करती है। SCOPE_IDENTITY () @@ पहचान के समान है, लेकिन यह मूल्य को आपके वर्तमान दायरे तक सीमित कर देगा। दूसरे शब्दों में, यह किसी ट्रिगर या उपयोगकर्ता परिभाषित फ़ंक्शन द्वारा बनाई गई किसी भी पहचान के बजाय, आपके द्वारा स्पष्ट रूप से बनाया गया अंतिम पहचान मान लौटाएगा।
IDENT_CURRENT()
किसी तालिका में उत्पादित अंतिम पहचान मान लौटाता है, भले ही वह मूल्य उत्पन्न करने वाले कथन का कनेक्शन और दायरा कुछ भी हो। IDENT_CURRENT एक निर्दिष्ट तालिका तक सीमित है, लेकिन कनेक्शन या दायरे से नहीं।