Best practice : converting INT to VARCHAR

That's why I use CONVERT - I see it as being consistent whether I need 3rd parameter, or not.

I have to use SELECT for:

SELECT @MyErrNo = @@ERROR, @MyRowCount = @@ROWCOUNT

(SET cannot set multiple parameters in a single statement) so I always use SELECT to set @variables, and never use SET, for the same reason of consistency.