xxxxxxxxxx
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'YourTableName' AND
COLUMN_NAME = 'YourColumnName';
xxxxxxxxxx
IF COL_LENGTH('<table_name>', '<column_name>') IS NULL
BEGIN
--column doesnot exists, so, add column here
ALTER TABLE <table_name> ADD <column_name> BIT NOT NULL DEFAULT(0)
END
xxxxxxxxxx
IF EXISTS(SELECT 1 FROM sys.columns WHERE Name = N'columnName' AND Object_ID = Object_ID(N'schemaName.tableName'))
BEGIN
ALTER TABLE MyTable ADD COLUMN MyOtherColumn(DATATYPE)
END
xxxxxxxxxx
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.
xxxxxxxxxx
* Using the below query, You can check whether the table1 has a column named "id"
SHOW COLUMNS FROM table1 LIKE 'id'