SCOPE_IDENTITY vrátí poslední hodnotu identity vloženou do sloupce identity ve stejném oboru. Rozsah je modul:uložená procedura, spouštěč, funkce nebo dávka. Proto jsou dva příkazy ve stejném oboru, pokud jsou ve stejné uložené proceduře, funkci nebo dávce.
Pomocí SqlCommand.ExecuteScalar můžete provést příkaz insert a získat nové ID v jednom dotazu.
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();
}
}