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:
1 2 3 | 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:
1 2 3 | 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:
1 2 3 4 5 6 7 8 9 | 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 |