Problemática
Creo que la propia pregunta nos dice la problemática, pero voy a poner un ejemplo para clarificar las cosas de manera mas puntual.
Tenemos un ERP con un catálogo de artículos, en la base de datos se cuenta la tabla que sustenta el catálogo mas un sin fin de tablas de apoyo que albergan bitácoras, Kardex, ventas, facturas, etc., etc. dentro de dichas tablas existen relacionados artículos.
La relacione entre el catálogo de artículos y estas tablas esta establecida por la clava única de cara articulo que se almacena en el campo CveArt.
Nos solicitan encontrar dentro de la base de datos todos los lugares en los que el artículo con clave 777 se encuentra, y como no conocemos la totalidad de las tablas que contemplan este campo, y mucho menos si el artículo con clave 777 se encuentra allí.
Solución
Existen varias opciones para realizar esta búsqueda, algunas mas complejas que otras, yo les voy a proporcionar mi solución, la cual ya evaluarán ustedes si es compleja o no.
Primero descarguen de la siguiente liga un Stored procedure de mi autoría:
Stored procedure para buscar valores de campos en todas las tablas de una BD
A continuación anexo el ejemplo de ejecución para el caso de nuestro ejemplo:
EXEC PIRM_SelValCamTabla 'CveArt', 777
El resultado sería algo similar a lo siguiente
Contador | Tabla | Registros |
1 | Kardex | 23747 |
2 | Ventas | 2110 |
3 | CatalogoArt | 1 |
4 | Rembolsos | 0 |
5 | Cancelaciones | 1 |
6 | Bitacora | 24171 |
7 | Devoluciones | 1 |
8 | Recibos | 0 |
En donde la primera columna (Contador) es un simple identificador interno de la tabla de paso utilizada para desplegar la información. La segunda es el nombre de la tabla y la tercer es la cantidad de registros encontrados en esa tabla que contienen el valor 777 para el campo CveArt
Espero les sea de utilidad.
No hay comentarios:
Publicar un comentario