Hoy me encontré con una petición bastante inusual (inusual, porque nunca me lo habían pedido antes…). ¿Como obtengo una lista de TODAS las tablas y TODAS las columnas de una Base de Datos?
No fue menor la solicitud. Obtener el listado de todas las columnas de una tabla no es difícil, pero esta Base de Datos tenia cerca de 60 tablas y algunas de estas tablas tienen casi 20 columnas, la tarea se hacía un poco tediosa.
Hasta que se me ocurrió ponerme a cachurear por ahí y encontré las siguientes consultas:
Para Bases de Datos SQL Server 2000
SELECT SO.NAME, SC.NAME
FROM sysobjects SO INNER JOIN syscolumns SC
ON SO.ID = SC.ID
WHERE SO.XTYPE = ‘U’
ORDER BY SO.NAME, SC.NAME
Para Bases de Datos SQL Server 2005
SELECT SO.NAME, SC.NAME
FROM sys.objects SO INNER JOIN sys.columns SC
ON SO.OBJECT_ID = SC.OBJECT_ID
WHERE SO.TYPE = ‘U’
ORDER BY SO.NAME, SC.NAME
Como siempre, sus dudas y comentarios son bienvenidos.