Link to home
Start Free TrialLog in
Avatar of STEVEN WEBBER
STEVEN WEBBERFlag for United States of America

asked on

Test for column existence with Transact-SQL

How can I determine if a column exists? I would like to create an idempotent script to make some schema changes and would like to know if I have already added a column.
SOLUTION
Avatar of Éric Moreau
Éric Moreau
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of KatieAndEmil
KatieAndEmil

Below is link to SQL Tutorial with what you are after (and similar)

SQL check if column exists

Hope that helps
Emil
Search in Table:

if Exists(select * from sys.columns where Name = N'columnName'  
            and Object_ID = Object_ID(N'tableName'))

Search in Database:

SELECT t.name AS table_name,
 SCHEMA_NAME(schema_id) AS schema_name,
 c.name AS column_name
 FROM sys.tables AS t
 INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
 WHERE c.name LIKE '%EmployeeID%'
 ORDER BY schema_name, table_name;

Search all coumns in database :

SELECT t.name AS table_name,
 SCHEMA_NAME(schema_id) AS schema_name,
 c.name AS column_name
 FROM sys.tables AS t
 INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
ORDER BY schema_name, table_name;

Ref.Link:

http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/