• 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

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass