Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Llamar a tablas según su nombre

Estas en el tema de Llamar a tablas según su nombre en el foro de Bases de Datos General en Foros del Web. Hola, ¿Cómo se hace un select para mostrar los atributos de las tablas que empiecen por "hola_"?...
  #1 (permalink)  
Antiguo 23/02/2005, 09:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Llamar a tablas según su nombre

Hola, ¿Cómo se hace un select para mostrar los atributos de las tablas que empiecen por "hola_"?
  #2 (permalink)  
Antiguo 23/02/2005, 09:43
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 22 años, 1 mes
Puntos: 11
motor de bases de datos ?
__________________
Jorge Mota
Blog
Gubiz estafa
  #3 (permalink)  
Antiguo 23/02/2005, 09:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Sí, perdón, no lo dije, SQL Server 2000.
  #4 (permalink)  
Antiguo 23/02/2005, 10:31
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 11 meses
Puntos: 50
Puedes intentarlo de esta forma:

Cita:
SELECT o.Name,c.NAME
FROM dbo.sysobjects o
INNER JOIN
dbo.syscolumns c
ON c.id = o.id
WHERE o.NAME LIKE 'hola_%'
AND o.xtype='U'
Con ello obtienes todas tus tablas con sus campos

Espero que te sirva..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 01/03/2005, 20:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Gracias. ¿Y cómo obtener sólo los nombres de las tablas que empiecen por "hola_"? (sin los campos).

Es que no controlo bien eso que has hecho, estoy leyendo información sobre Transact-SQL pero aún no he llegado ahí. Seguro que es hacer un cambio sencillísimo a ese código.


Una forma fácil, es quitando el c.NAME de al lado del select, pero así haría trabajar inútilmente a la máquina, y obviamente habrá un método más eficiente.
  #6 (permalink)  
Antiguo 01/03/2005, 20:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Vale, examinando y probando ese código he llegado a que sería:

Código:
SELECT o.Name
FROM dbo.sysobjects o
WHERE o.NAME LIKE 'P%'
AND o.xtype='U'
Pero no entiendo nada. ¿Habría otro modo mejor de hacerlo? ¿Qué es eso del xtype? ¿Y lo de hacerlo con "o.", es necesario?
  #7 (permalink)  
Antiguo 02/03/2005, 09:11
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 11 meses
Puntos: 50
Cita:
Qué es eso del xtype?
Es xtype es para indicar que tipo de objeto estás buscando, si abres tu tabla llamada sysobject (select * from dbo.sysobjects) verás que se mostrarán todos los objetos de tu BD,

Donde xtype se refiere al tipo..

Por ejemplo:

U = Tablas
PK = Llaves primarias
P = Store Procedures
S = Sys, etc..etc...


Cita:
¿Y lo de hacerlo con "o.", es necesario?
no es necesario "o" lo puse como un alias para no colocarlo todo completo... podría haber sido "a", "b", "algo", etc...

Pero lo puedes dejar así:

Cita:
SELECT Name
FROM dbo.sysobjects
WHERE NAME LIKE 'P%'
AND xtype='U'
Nota.- Hay algunas veces dependiendo del owner que será necesario poner el objeto de forma completa, o porque tienes varios inner joins...etc.. (es por eso que a veces se manejan alias para ahorrarte la escritura

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #8 (permalink)  
Antiguo 02/03/2005, 10:16
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Muy provechoso.
  #9 (permalink)  
Antiguo 02/03/2005, 13:13
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Claro, que al no estar ya los campos, no hace falta el xtype para nada (se da por hecho), y también se podría quitar:

Código:
SELECT Name
FROM dbo.sysobjects 
WHERE NAME LIKE 'P%'
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:56.