Jeg vil sige, at du skal bruge SCOPE_IDENTITY()
som @@identity
vil returnere identiteten af den sidst indsatte ting (som muligvis ikke er din lagrede procedure, hvis flere forespørgsler kører samtidigt).
Du skal også VÆLGE det, ikke RETURNERE det.
ExecuteScalar
returnerer den første kolonneværdi fra den første række i et resultatsæt.
Så...
SELECT SCOPE_IDENTITY();
er nok mere, hvad du ønsker.