Procedimiento: Buscador

08/11/2004 - 13:03 por Elena | Informe spam
Hola grupo,

tengo que hacer un procedimiento almacenado que realice una búsqueda en
todas las tablas de la base de datos por todos sus campos(una media de 10
campos por tabla); el problema es que tengo unas 140 tablas. Entonces me
estoy planteando como poder realizarlo y si es viable.
Los parámetros de entrada deberían ser dinámicos porque no voy a tener un
procedimiento con 1400 parámetros de entrada, había pensado que me pasaran
el nombre de la tabla y el campo en un tipo table pero no sé si es posible.
Podríais darme ideas.

Un saludo
Elena

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
08/11/2004 - 13:40 | Informe spam
¿Un procedimiento que busque un texto en todos los campos de todas las
tablas de una base de datos? ¿Pero eso es por un tema puntual o realmente lo
quieres implementar en una aplicación en producción? Lo digo porque lo que
quieres me parece un poco locura...

De todos modos se haría con cursores (dos, uno para recorrer las tablas
y otro para recorrer sus campos alfanuméricos) y con sql dinámico. Es decir,
algo muy lento, ineficiente e inseguro


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Elena" escribió en el mensaje
news:
Hola grupo,

tengo que hacer un procedimiento almacenado que realice una búsqueda en
todas las tablas de la base de datos por todos sus campos(una media de 10
campos por tabla); el problema es que tengo unas 140 tablas. Entonces me
estoy planteando como poder realizarlo y si es viable.
Los parámetros de entrada deberían ser dinámicos porque no voy a tener un
procedimiento con 1400 parámetros de entrada, había pensado que me pasaran
el nombre de la tabla y el campo en un tipo table pero no sé si es


posible.
Podríais darme ideas.

Un saludo
Elena


Respuesta Responder a este mensaje
#2 Elena
08/11/2004 - 13:59 | Informe spam
Es para una aplicación en producción, saben que va a ir muy lento pero así
el cliente lo quiere.
Otro duda sería que voy formando la sentencia sql dinámica para luego
ejecutarla al final del procedimiento EXEC(@sql) el problema sería si esa
variable @sql pasa de 8000 caracteres.¿No se puedo formar una cadena mayor?
¿La otra duda sería como se pasarían los parámetros de entrada de forma
dinámica?
De todas formas si veo que no va a ser viable tendré que exponer al jefe de
proyecto los inconvenientes, por eso estoy recogiendo opiniones.

Gracias.



"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:
¿Un procedimiento que busque un texto en todos los campos de todas las
tablas de una base de datos? ¿Pero eso es por un tema puntual o realmente


lo
quieres implementar en una aplicación en producción? Lo digo porque lo que
quieres me parece un poco locura...

De todos modos se haría con cursores (dos, uno para recorrer las


tablas
y otro para recorrer sus campos alfanuméricos) y con sql dinámico. Es


decir,
algo muy lento, ineficiente e inseguro


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Elena" escribió en el mensaje
news:
> Hola grupo,
>
> tengo que hacer un procedimiento almacenado que realice una búsqueda en
> todas las tablas de la base de datos por todos sus campos(una media de


10
> campos por tabla); el problema es que tengo unas 140 tablas. Entonces me
> estoy planteando como poder realizarlo y si es viable.
> Los parámetros de entrada deberían ser dinámicos porque no voy a tener


un
> procedimiento con 1400 parámetros de entrada, había pensado que me


pasaran
> el nombre de la tabla y el campo en un tipo table pero no sé si es
posible.
> Podríais darme ideas.
>
> Un saludo
> Elena
>
>


Respuesta Responder a este mensaje
#3 ulises
08/11/2004 - 14:33 | Informe spam
De que se puede hacer, se puede, pero tendrías que evaluar
el costo en rendimiento que tendrías. En todo caso los
nombres de las tablas y sus columnas las puedes obtener de
las vistas INFORMATION_SCHEMA.TABLES y
INFORMATION_SCHEMA.COLUMNS y a través de un cursor formas
una sentencia dinámica y la ejecutas, la verdad que eso me
parece muy feo en todo caso si tu diseño de base de datos
es estática (como generalmente lo es) podrías tener un
procedimiento almacenado ya formado con las sentencias
directas a las 140 tablas eso sería mejor que usar lo
anterior pero pienso que todavía se seguiría presentando un
problema de rendimiento ...

Saludos,
Ulises

Hola grupo,

tengo que hacer un procedimiento almacenado que realice


una búsqueda en
todas las tablas de la base de datos por todos sus


campos(una media de 10
campos por tabla); el problema es que tengo unas 140


tablas. Entonces me
estoy planteando como poder realizarlo y si es viable.
Los parámetros de entrada deberían ser dinámicos porque no


voy a tener un
procedimiento con 1400 parámetros de entrada, había


pensado que me pasaran
el nombre de la tabla y el campo en un tipo table pero no


sé si es posible.
Podríais darme ideas.

Un saludo
Elena


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida