SQL Server: one situation where you have to use SELECT is when assigning @@ERROR and @@ROWCOUNT as these have to be set in the same statement (otherwise they get reset):
SELECT @error = @@ERROR, @rowcount = @@ROWCOUNT
(SET only works with one value at a time)