Para averiguar si una columna o tabla existe en una base de datos SQL Server puedes consultar las tablas de sistema INFORMATION_SCHEMA.TABLES y INFORMATION_SCHEMA.COLUMNS.
Ademas esta última tabla nos da información de las columnas, como el tipo, longitud, si es nullable, etc.
Para saber si existe una tabla escribe lo siguiente:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'NOMBRE_TABLA'
Para saber si existe una columna de una tabla escribe lo siguiente:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'NOMBRE_COLUMNA' AND TABLE_NAME = 'NOMBRE_TABLA'
Si por ejemplo, quieres añadir una columna a un tabla sólo si ésta no existe haz lo siguiente:
IF not exists
(
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'NOMBRE_COLUMNA' AND TABLE_NAME = 'NOMBRE_TABLA'
)
BEGIN
ALTER TABLE NOMBRE_TABLA ADD NUEVO_CAMPO int
END