Para recuperar los nombres de las tablas de una BD de MS SQL:

select name from sysobjects where type='U' order by name asc

Para recuperar los nombres de las columnas de una tabla específica:

SELECT * FROM INFORMATION_SCHEMA.Columns
where TABLE_NAME = 'xxx'

(donde «xxx» es el nombre de la tabla)