miércoles, 17 de septiembre de 2008

buscar columnas en todas las tablas Sql Server

me vi en la necesidad de buscar en todas las tablas de una base de datos por un comodin ya que no conocia bien el modelo de la base de datos.
aqui les dejo el sql.
SELECT  sysobjects.name AS table_name, syscolumns.name AS column_name,
           systypes.name AS datatype, syscolumns.LENGTH AS LENGTH
FROM       sysobjects INNER JOIN
               syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
               systypes ON syscolumns.xtype = systypes.xtype
WHERE     (sysobjects.xtype = 'U') 
                and (UPPER(syscolumns.name) like upper('%myFieldName%'))
ORDER BY sysobjects.name, syscolumns.colid



Solo tienen que cambiar donde dice "myFieldName" por el nombre de la columna que desean buscar.

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

89 comentarios:

  1. Sos groso!!! justo lo que estaba necesitando! Gracias

    ResponderEliminar
  2. MUCHAS GRACIAS, ERA LO QUE BUSCABA

    ResponderEliminar
  3. muchas gracias desde Panama city.

    ResponderEliminar
  4. Muchas gracias desde Chile

    ResponderEliminar
  5. Que gran aporte, me has ahorrado demasiado tiempo porque igual que tu no conozco mi modelo de base de datos, ya que estoy en un proyecto nuevo y me cogieron de novato

    ResponderEliminar
  6. Alguien sabe como buscar un dato en todas las tablas ?

    ResponderEliminar
  7. por ahora yo no, me imagino que seria algun procedimiento almacenado, voy a buscar :D

    ResponderEliminar
  8. Victor muchas gracias me ha servido muchisimo tu aporte, realmente excelente, gracias

    Que bueno cuando todos nos ayudamos

    ResponderEliminar
  9. buenisima la instruccion Muchas gracias

    ResponderEliminar
  10. Muchisimas gracias me sirvió mucho ;)

    ResponderEliminar
  11. Muchas gracias, desde Colombia por fin un blog decente...

    ResponderEliminar
  12. Como estás Víctor

    tengo una pregunta, debo hacer un script en el cual ingreso el orden de la columna (no conozco el nombre de la columna) en la tabla y poder sacar los datos solo de la columna en cuestión, no sé si podras ayudarme. mil gracias.

    ResponderEliminar
  13. no te entiendo, lo que estas tratando de hacer es por ejemplo sacar solo la columna en posicion 1 de la tabla "xyz" eso???

    ResponderEliminar
  14. Genial script! ... +10 desde Argentina :)

    ResponderEliminar
  15. Hombre, muchas gracias.
    Me salvaste de una te doy +10

    ResponderEliminar
  16. A mi tb me sirvio...Dos años despues de que lo publicaste jejeje
    Gracias
    Carolina
    PD: Tb de Chile

    ResponderEliminar
  17. Para quienes buscar cualquier texto, dentro de cualquier procedimiento almacenado, basta con lo siguiente:

    SELECT * FROM SYSOBJECTS WHERE ID IN(
    SELECT ID FROM SYSCOMMENTS WHERE TEXT LIKE '%LOQUEQUIERESBUSCAR%' )

    Esto entregara el procedimiento que contiene lo buscado... eso seria..

    ResponderEliminar
  18. GRacias por tu comentario jose,

    justamente ahi una entrada con eso mira

    http://vhspiceros.blogspot.com/2009/03/buscar-textos-en-precemientos.html

    --
    Atte.
    Víctor Hugo Saavedra.
    http;//vhspiceros.blogspot.com

    ResponderEliminar
  19. Increiblemente util!!!! Muy bueno, la uso todo el tiempo! Saludos desde Corrientes-Argentina

    ResponderEliminar
  20. Gracias! Ha sido de mucha ayuda para mi. :D

    Saludos dese Rep.Dom

    ResponderEliminar
  21. Muchas gracias!! genial!

    ResponderEliminar
  22. Gracias por compartirlo, me sirvio ahorita que lo necesitaba

    ResponderEliminar
  23. Gracias por compartirlo.. me ahorraste bastante tiempo, ya que tengo que investigar un modelo de datos..
    saludos

    ResponderEliminar
  24. Oie excelente! eso me ayudará a buscar un texto específico en toda una tabla de base de datos !...

    Gracias!!

    ResponderEliminar
  25. Excelente muchas gracias,

    Best Regards,

    ResponderEliminar
  26. Justo lo que necesitaba. :) Saludos !!! y gracias por el aporte

    ResponderEliminar
  27. simplemente excelente...muy buen aporte...debe de haber mas gente como tu que dan soluciones precisas

    ResponderEliminar
  28. muy bueno tu aporte gracias

    ResponderEliminar
  29. Cuantos años y sigue ayudando esta reseña. Muchas gracias!!!

    ResponderEliminar
  30. Hola ... excelente el aporte... pero si quisiera cambiar el nom bre de un campo que esta en común en todas las tablas cómo podría hacer esto, gracias

    ResponderEliminar
  31. sos otro nivel... 214 y aun habemos quien lo buscamos!!

    ResponderEliminar
  32. 2014 y aun lo seguimos usando... :)

    Saludos desde San pedro Sula,Honduras....

    ResponderEliminar
  33. Muchas gracias Victor HUgo justo neesitaba esto para PiotorSoft.

    ResponderEliminar
  34. Excelente!!!! muchas gracias!!!

    ResponderEliminar
  35. excelente me parece muy bueno 10 puntos, habría posibilidad de ampliarlo hacia las vistas, porque solo trabaja con las tablas

    ResponderEliminar
  36. Sin menospreciar el trabajo aquí, que me parece excelente, pongo uno que muestra las consultas también
    SELECT TABLE_NAME, COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME LIKE '%campoAbuscar%'
    ORDER BY COLUMN_NAME

    ResponderEliminar
  37. Excelente aporte.

    Saludos amigo

    ResponderEliminar
  38. Muchas gracias, buen aporte me sirvio de mucho.

    ResponderEliminar
  39. Excelente, justo lo que buscaba...saludos desde Ciudad de Panamá!

    ResponderEliminar
  40. Muy buen aporte. demasiado útil.

    ResponderEliminar
  41. Muchas gracias por el aporte, me ayudo demasiado.

    ResponderEliminar
  42. Esto me ha ayudado un monton... Gracias...!!!

    ResponderEliminar
  43. Esta es la forma que yo uso hay que cambiar NombreDeCampo porel campo que buscamos.

    SELECT TABLE_NAME,*
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME LIKE '%NombreDeCampo%'

    ResponderEliminar
  44. Gracias fue de muchas ayuda tu aporte - soy nicaraguense, y aunque tengo el modelo, es cansado estar buscando tabla a tabla con esta relacionado.. muchas gracias..

    ResponderEliminar
  45. muy bueno, saludos desde México

    ResponderEliminar
  46. Muchísimas gracias, me salvaste la vida

    ResponderEliminar
  47. Que gran aporte. saludos desde Colombia

    ResponderEliminar
  48. Excelente, cada cierto tiempo necesito esta consulta.

    ResponderEliminar
  49. mi pez, justo en el clavo. Gracias Col.

    ResponderEliminar
  50. Gracias me sirvió mucho :)

    ResponderEliminar
  51. Hola, muchas gracias por el aporte, queria consultar si sabras alguna forma de buscar una palabra o frase de una tabla en especifico en cualquiera de sus columnas varchar, nvarchar, text, etc. Aquellas de texto o alfanumerico. Gracias por el aporte!

    ResponderEliminar
  52. Esto es mucho mejor, menos codigo y mismo resultado

    SELECT TABLE_NAME,*
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME LIKE '%NombreDeCampo%'

    ResponderEliminar
  53. Excelente aporte, gracias por compartir, también a quienes comentaron otras consultas que ayudan a complementar

    ResponderEliminar