Tôi muốn nói rằng bạn nên sử dụng SCOPE_IDENTITY() dưới dạng @@identity sẽ trả về danh tính của thứ cuối cùng được chèn (có thể không phải là thủ tục được lưu trữ của bạn nếu nhiều truy vấn đang chạy đồng thời).
Bạn cũng cần CHỌN nó chứ không phải TRẢ LẠI.
ExecuteScalar sẽ trả về giá trị cột đầu tiên từ hàng đầu tiên của tập kết quả.
Vì vậy ...
SELECT SCOPE_IDENTITY();
có thể là nhiều hơn những gì bạn muốn.