SCOPE_IDENTITY mengembalikan nilai identitas terakhir yang dimasukkan ke dalam kolom identitas dalam lingkup yang sama. Lingkup adalah modul:prosedur tersimpan, pemicu, fungsi, atau kumpulan. Oleh karena itu, dua pernyataan berada dalam cakupan yang sama jika berada dalam prosedur, fungsi, atau batch tersimpan yang sama.
Anda dapat menggunakan SqlCommand.ExecuteScalar untuk menjalankan perintah insert dan mengambil ID baru dalam satu query.
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();
}
}