A more concise version
IF COL_LENGTH('table_name','column_name') IS NULL BEGIN /* Column does not exist or caller does not have permission to view the object */ END
The point about permissions on viewing metadata applies to all answers not just this one.
Note that the first parameter table name to
COL_LENGTH can be in one, two, or three part name format as required.
An example referencing a table in a different database is
One difference with this answer compared to using the metadata views is that metadata functions such as
COL_LENGTH always only return data about committed changes irrespective of the isolation level in effect.