Dado un #, ¿cómo descubro en qué tabla y columna se puede encontrar?
No me importa si es rápido, solo necesita funcionar.
sql-server
Allain Lalonde
fuente
fuente
Respuestas:
Esto te puede ayudar . - de Narayana Vyas. Busca todas las columnas de todas las tablas en una base de datos dada. Lo he usado antes y funciona.
Este es el proceso almacenado del enlace anterior: el único cambio que hice fue sustituir la tabla temporal por una variable de tabla para que no tenga que acordarse de soltarla cada vez.
fuente
Si necesita ejecutar dicha búsqueda solo una vez, entonces probablemente pueda usar cualquiera de los scripts que ya se muestran en otras respuestas. Pero de lo contrario, recomendaría usar ApexSQL Search para esto. Es un complemento de SSMS gratuito y realmente me ahorró mucho tiempo.
Antes de ejecutar cualquiera de los scripts, debe personalizarlo según el tipo de datos que desea buscar. Si sabe que está buscando una columna de fecha y hora, no hay necesidad de buscar en las columnas nvarchar. Esto acelerará todas las consultas anteriores.
fuente
Basado en la respuesta de bnkdev, modifiqué el Código de Narayana para buscar todas las columnas, incluso las numéricas.
Funcionará más lentamente, pero esta versión realmente encuentra todas las coincidencias, no solo las que se encuentran en las columnas de texto.
No puedo agradecerle lo suficiente a este tipo. ¡Me ahorró días de búsqueda a mano!
fuente
Esta es mi opinión independiente sobre esta pregunta que uso para mi propio trabajo. Funciona en SQL2000 y versiones posteriores, permite comodines, filtrado de columnas y buscará la mayoría de los tipos de datos normales.
Una descripción de pseudocódigo podría ser
select * from * where any like 'foo'
No lo pongo en forma de proceso ya que no quiero mantenerlo en cientos de bases de datos y de todos modos es realmente para trabajo ad-hoc. Por favor, siéntase libre de comentar sobre correcciones de errores.
fuente
Optimicé la respuesta de Allain Lalonde ( https://stackoverflow.com/a/436676/412368 ). Los valores numéricos aún son compatibles. Debería ser aproximadamente 4-5 veces más rápido (1:03 frente a 4:30), probado en un escritorio con una base de datos de 7GB. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
fuente
Es mi forma de resolver esta pregunta. Probado en SQLServer2008R2
fuente
Gracias por el guión realmente útil.
Es posible que deba agregar la siguiente modificación al código si sus tablas tienen campos no convertibles:
Chris
fuente
Tengo una solución de hace un tiempo que seguí mejorando. También busca dentro de las columnas XML si se le indica que lo haga, o busca valores enteros si proporciona una cadena entera solo.
Fuente: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
fuente
Una vez escribí una herramienta para mí para hacer exactamente eso:
a7 SqlTools
Es gratis y de código abierto:
enlace github
fuente
Aquí, una solución muy dulce y pequeña:
==========================
fuente
Otra forma de usar JOIN y CURSOR:
fuente
Es posible que deba crear un índice invertido para su base de datos. Se asegura que será bastante rápido.
fuente
Supongamos que si desea obtener toda la tabla con el nombre, el nombre de una columna contiene logintime en la base de datos MyDatabase a continuación es el ejemplo de código
fuente
Si tiene instalado phpMyAdmin, use su función de búsqueda .
Seleccione su base de datos.
Asegúrese de haber seleccionado DataBase, no una tabla, de lo contrario obtendrá un cuadro de diálogo de búsqueda completamente diferente.
fuente
fuente
Para fines de desarrollo, puede exportar los datos de las tablas requeridas a un solo HTML y realizar una búsqueda directa en ellos.
fuente
Las herramientas de cliente de base de datos (como DBeaver o phpMyAdmin ) a menudo admiten medios de búsqueda de texto completo en toda la base de datos.
fuente