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:
COL_LENGTH('AdventureWorks2012.HumanResources.Department','ModifiedDate')
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.
COL_LENGTH('AdventureWorks2012.HumanResources.Department ','ModifiedDate')
works fine.EXEC sp_executesql
with formedUPDATE
statement.FROM [YourDatabase].INFORMATION_SCHEMA.COLUMNS