SCOPE_IDENTITY returnerer den sidste identitetsværdi, der er indsat i en identitetskolonne i samme omfang. Et omfang er et modul:en lagret procedure, trigger, funktion eller batch. Derfor er to sætninger i samme omfang, hvis de er i den samme lagrede procedure, funktion eller batch.
Du kan bruge SqlCommand.ExecuteScalar til at udføre insert-kommandoen og hente det nye ID i én forespørgsel.
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();
}
}