Put the part that has the column that may not exist in dynamic SQL
EXEC ('<sql statement here>')
That error is indeed a parse-time error, the entire batch gets parsed before anything starts executing.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability