If you need the identity value then getting it via a parameter of the stored procedure is going to be the fastest way to do it. It you don't need the identity value returned, then of course it will slow things down a bit but we are talking about hundreths or thousands of a second.
Performing the @@identity check would be faster and possibly more reliable (depends on your architecture; especially under high-traffic situations) than trying to concoct a different query to get "That Record That Was Just Posted".<BR><BR>So, if you have to get the @@identity value, the @@identity pickup is (afaik) the fastest way to do it. Of course it's faster to not do it at all, but you hardly get the same results. ;-)