| ||||
Puedes intentarlo de esta forma: Cita: Con ello obtienes todas tus tablas con sus camposSELECT 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' Espero que te sirva.. Salu2
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| |||
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. |
| |||
Vale, examinando y probando ese código he llegado a que sería:
Código:
Pero no entiendo nada. ¿Habría otro modo mejor de hacerlo? ¿Qué es eso del xtype? ¿Y lo de hacerlo con "o.", es necesario? SELECT o.Name FROM dbo.sysobjects o WHERE o.NAME LIKE 'P%' AND o.xtype='U' |
| ||||
Cita: 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, Qué es eso del xtype? Donde xtype se refiere al tipo.. Por ejemplo: U = Tablas PK = Llaves primarias P = Store Procedures S = Sys, etc..etc... Cita: no es necesario "o" lo puse como un alias para no colocarlo todo completo... podría haber sido "a", "b", "algo", etc...¿Y lo de hacerlo con "o.", es necesario? Pero lo puedes dejar así: Cita: 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 escrituraSELECT Name FROM dbo.sysobjects WHERE NAME LIKE 'P%' AND xtype='U' Salu2
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |