Saya akan mengatakan Anda harus menggunakan SCOPE_IDENTITY()
sebagai @@identity
akan mengembalikan identitas dari hal terakhir yang dimasukkan (yang mungkin bukan prosedur tersimpan Anda jika beberapa kueri dijalankan secara bersamaan).
Anda juga perlu PILIH, bukan KEMBALI.
ExecuteScalar
akan mengembalikan nilai kolom pertama dari baris pertama kumpulan hasil.
Jadi...
SELECT SCOPE_IDENTITY();
mungkin lebih dari yang Anda inginkan.