SCOPE_IDENTITY returnerar det senaste identitetsvärdet som infogats i en identitetskolumn i samma omfång. En scope är en modul:en lagrad procedur, trigger, funktion eller batch. Därför är två satser i samma omfattning om de är i samma lagrade procedur, funktion eller batch.
Du kan använda SqlCommand.ExecuteScalar för att utföra kommandot infoga och hämta det nya ID:t i en fråga.
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();
}
}