I have a service which can work against multiple versions of my database schema. Across these different versions, in the tables, there are a set of columns which are the same in all versions, and then some columns which have been added as part of various feature enhancements, bug fixes, etc.
A lot of my code needs to just get back data from the tables and display it to the user in some basic format (CSV, XML, etc). However, I don't do a "SELECT *" because there are some columns (common in all versions) which are huge (varchar(MAX) and varbinary(MAX)). So, I explicitly do SELECT A, B, C etc.
Now, because of the differences in the table schemas across versions (note, the code version that can work against all these db versions is the same), every time I update the table structure my code needs to have some additional checks (if db is this version then do this SELECT; if db is this other version then do this SELECT; etc).
It would be great if there was a syntax to do "SELECT *, NOT Column1, NOT Column2, NOT Column3 FROM MyTable"
I could then use this same SELECT statement across all the different db versions for MyTable.