I have trouble with procedures that use
SELECT *. They are often not “Blue-Green safe“. In other words, if a procedure has a query that uses
SELECT *then I can’t change the underlying tables can’t change without causing some tricky deployment issues. (The same is not true for ad hoc queries from the application).
I also have a lot of procedures to look at (about 5000) and I’d like to find the procedures that use
I want to maybe ignore
SELECT *when selecting from a subquery with a well-defined column list.
I also want to maybe include related queries like
Read on to see Michael’s strategy for attacking the problem while not including benign instances of it (such as
WHERE EXISTS (SELECT * ...), which won’t cause any issues because the database engine doesn’t expand that wildcard).