SCOPE_IDENTITY trả về giá trị nhận dạng cuối cùng được chèn vào cột nhận dạng trong cùng phạm vi. Phạm vi là một mô-đun:một thủ tục, trình kích hoạt, chức năng hoặc lô được lưu trữ. Do đó, hai câu lệnh trong cùng một phạm vi nếu chúng nằm trong cùng một thủ tục, hàm hoặc lô được lưu trữ.
Bạn có thể sử dụng SqlCommand.ExecuteScalar để thực hiện lệnh chèn và truy xuất ID mới trong một truy vấn.
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();
}
}