Ver Mensaje Individual
  #7  
Antiguo 13-09-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La mayoria de las Bases de Datos tienen tablas de catálogos donde puedes consultar los nombres de tablas, los nombres de campos, los tipos, índices,....
En el caso de SQL server, como comentas, posee las tablas, sysColumns, sysObjects, sysIndexes,... (todas las que empiezan por sys)

Para saber los nombres de las tablas puedes ejecutar:
Código SQL [-]
   select * from sysobjects where xtype='U'

Para conocer todos los campos de todas las tablas:
Código SQL [-]
 select * from syscolumns

Para obtener sólo los campos de una tabla:
Código SQL [-]
 select * from syscolumns inner join sysobjects on sysobjects.id=syscolumns.id 
 where sysobjects.xtype='U' and sysobjects.name='Monedas'

Si además quieres saber el tipo de cada campo, debes usar la tabla systypes:
Código SQL [-]
 select systypes.Name, syscolumns.* from syscolumns 
     inner join sysobjects on sysobjects.id=syscolumns.id 
     inner join systypes on systypes.xtype=syscolumns.xtype
 where sysobjects.xtype='U' and sysobjects.name='tmoneda'

.. y así todo lo que necesites. El diccionario de datos varía de estructura segun el SGBD, pero son similares en todos, es cuestión de echare un vistazo y mirar la ayuda.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita