Encontrar tablas con determinada columna en SQL Server

lunes, 15 de junio de 2009
Publicado por Ivan 0 comentarios

Wow!, hace tiempo que no escribía nada aquí en mi blog, y es que el tiempo es algo que me ha faltado muhco, sumado al hecho que cuesta escribir cosas en la pega, por temor al jefe o temas similares. Pero bueno!!, quiero volver a escribir sobre como soluciono problemas que voy teniendo, y espero que esta vez me vaya bien.

Ok, en este caso, ocurre que necesitaba encontrar en qué tablas se encuentra una columna. Esto debido a que no siempre se conservan las claves foráneas, y solo se mantienen relacionadas de hecho producto de un mismo nombre de columna en ambas tablas (o en aquellas relacionadas con el mismo campo). Esto ayuda mucho a la hora de escribir joins o similares consultas sql, por lo que considero es una muy buena práctica.

Bueno, volviendo al tema, necesitaba encontrar las tablas que tenían esta columna, para determinar cuál era la tabla con los valores relacionados a esta clave. Y para eso, via VSToolsForum encontré una excelente consulta que me ayudó a resolver el tema:

select sysobjects.name
from syscolumns
left join sysobjects on sysobjects.id = syscolumns.id
where syscolumns.name like 'myFieldName'
order by 1

Y obviamente, debemos reemplazar el ‘myfieldname’ con el nombre de la columna que estamos buscando, y listo!!, veremos las tablas que estabamos buscando. De hecho, en la pagina aparece otra consulta que cumple con el mismo objetivo.