SCOPE_IDENTITY retourneert de laatste identiteitswaarde die is ingevoegd in een identiteitskolom in hetzelfde bereik. Een scope is een module:een opgeslagen procedure, trigger, functie of batch. Daarom vallen twee instructies binnen hetzelfde bereik als ze zich in dezelfde opgeslagen procedure, functie of batch bevinden.
U kunt SqlCommand.ExecuteScalar gebruiken om de opdracht insert uit te voeren en de nieuwe ID in één query op te halen.
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();
}
}