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();
}
}