I've always preached to my developers that SELECT *
is evil and should be avoided like the plague.
Are there any cases where it can be justified?
I'm not talking about COUNT(*)
- which most optimizers can figure out.
Edit
I'm talking about production code.
And one great example I saw of this bad practice was a legacy asp application that used select *
in a stored procedure, and used ADO
to loop through the returned records, but got the columns by index. You can imagine what happened when a new field was added somewhere other than the end of the field list.