http://microsoftpartnerevents.com/acrossamerica/Atlanta.aspx
We've all done it before, especially early in our development careers. For one reason or another, we've all used SELECT * queries ... the main reason being laziness. But because DBAs hate it when we do this, we all learned at some point that SELECT * queries are bad - all in an effort to return only the data that are applications need to make our applications run faster by saving network traffic. After all, it doesn't make sense to return 50 fields of data when all we need is a maximum of 8 fields.
However, I believe that as hardware gets bigger and faster and as technology continues to advance, the issue of network traffic and returning too much data will be less of a problem. But there are better reasons for specifying fields in your SELECT clause; two of these reasons include minimizing vulnerability and a concept called index coverage and index scans. Both of these issues are covered in this post by Jon Galloway. This is a good read for all developers and should be a great reminder to refrain from being lazy with all of our SQL queries.