Бих казал, че трябва да използвате SCOPE_IDENTITY()
като @@identity
ще върне самоличността на последното вмъкнато нещо (което може да не е вашата съхранена процедура, ако множество заявки се изпълняват едновременно).
Трябва също да го ИЗБЕРЕТЕ, а не да го ВЪРНЕТЕ.
ExecuteScalar
ще върне стойността на първата колона от първия ред на набор от резултати.
И така...
SELECT SCOPE_IDENTITY();
вероятно е повече от това, което искате.