SCOPE_IDENTITY उसी दायरे में एक पहचान कॉलम में डाला गया अंतिम पहचान मान देता है। एक दायरा एक मॉड्यूल है:एक संग्रहीत प्रक्रिया, ट्रिगर, फ़ंक्शन, या बैच। इसलिए, दो कथन एक ही दायरे में हैं यदि वे एक ही संग्रहीत कार्यविधि, कार्य या बैच में हैं।
आप इंसर्ट कमांड को निष्पादित करने और एक क्वेरी में नई आईडी को पुनः प्राप्त करने के लिए SqlCommand.ExecuteScalar का उपयोग कर सकते हैं।
using (var con = new SqlConnection(ConnectionString)) {
int newID;
var cmd = "INSERT INTO foo (column_name)VALUES (@Value);SELECT CAST(scope_identity() AS int)";
using (var insertCommand = new SqlCommand(cmd, con)) {
insertCommand.Parameters.AddWithValue("@Value", "bar");
con.Open();
newID = (int)insertCommand.ExecuteScalar();
}
}