SQL Server: Cómo buscar columnas en tablas

Chistes SQL
A SQL query goes into a bar,
walks up to two tables and asks,
«Can I join you?
Cuando una base de datos empieza a crecer y tiene cientos de tablas y cada una de esas tablas tiene otras cuantas decenas de columnas, a veces puede ser interesante saber en que tabla se encuentra cierta columna.
Para ello tenemos las tablas de sistema SysObjects y SysColumns que albergan esa útil información.
Por ejemplo con esta sencilla consulta podemos saber que tablas contienen la columna UserId:
1 2 3 4 5 6 7 8 9 |
SELECT SC.name ColumnName, so.name TableName FROM SysColumns SC INNER JOIN SysObjects so on SC.ID = SO.ID WHERE SO.[Type] = 'U' AND SC.[name] = 'UserId' ORDER BY SC.[name] |
Si queréis saber más información sobre SysObjects o SysColumns, Microsoft tiene una documentación fantástica al respecto: SysObjects SysColumns
Hay muchas más tablas sys en SQL Server, pero si queréis saber más lo dejo en vuestras manos que tan bien saben usar Google.
Un saludor.