Buscar Texto en "N" SPs

04/07/2003 - 18:25 por CAFC | Informe spam
Estimados:
Tengo muchisimos SPs en una BD SQL 6.5 y en muchos de
estos SPs hay datos en "duro" en las comparaciones
(Where), pero ahora ese texto en "duro" cambia y necesito
saber alguna forma de buscar en todos los SP dicho texto,
la idea es que me devuelva que SPs tienen "X" texto para
no tener que ir revisando 1 por 1 cada SP.
¿Hay alguna posibilidad de hacer esto?

Desde ya muchas gracias
Cristian.

Preguntas similare

Leer las respuestas

#1 Emilio Boucau
04/07/2003 - 18:39 | Informe spam
Hola,

este SP lo guarde de aqui del foro. No recuerdo (ni anote... mea culpa) el
autor, vayan los agradecimientos para el.

INICIO --

Declare @objname nvarchar(776)
Create table ##Listado (Objname nvarchar(776))

declare Lista cursor for

Select name from sysobjects
where xtype='P'
open lista

Fetch lista into @objname
while @@fetch_status=0
Begin
if exists(Select 1 from syscomments
where id = object_id(@objname) and encrypted= 0
and Patindex(Upper('%ACA COLOCAS LO QUE QUIERES
BUSCAR%'),Upper(text))<>0)
begin
insert ##listado select @objname
end
Fetch lista into @objname
End

Close Lista
Deallocate Lista

Select * from ##listado
drop table ##listado

FIN

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina
Respuesta Responder a este mensaje
#2 CAFC
04/07/2003 - 19:01 | Informe spam
Impecable, Notable. Es justo lo que busco.
Muchisimas gracias Emilio.
Saludos
Cristian.

Hola,

este SP lo guarde de aqui del foro. No recuerdo (ni


anote... mea culpa) el
autor, vayan los agradecimientos para el.

INICIO --

Declare @objname nvarchar(776)
Create table ##Listado (Objname nvarchar(776))

declare Lista cursor for

Select name from sysobjects
where xtype='P'
open lista

Fetch lista into @objname
while @@fetch_status=0
Begin
if exists(Select 1 from syscomments
where id = object_id(@objname) and encrypted= 0
and Patindex(Upper('%ACA COLOCAS LO QUE QUIERES
BUSCAR%'),Upper(text))<>0)
begin
insert ##listado select @objname
end
Fetch lista into @objname
End

Close Lista
Deallocate Lista

Select * from ##listado
drop table ##listado

FIN

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina


.

Respuesta Responder a este mensaje
#3 Justing Xiang
04/07/2003 - 22:00 | Informe spam
También podrías hacer simplemente una query.
Select name
from sysobjects
where type = 'P'
and id in (Select id from syscomments where text like '%..%')
Un saludo,
Justingx



"CAFC" escribió en el mensaje
news:5dae01c3424d$fb80c0a0$
Impecable, Notable. Es justo lo que busco.
Muchisimas gracias Emilio.
Saludos
Cristian.

>Hola,
>
>este SP lo guarde de aqui del foro. No recuerdo (ni
anote... mea culpa) el
>autor, vayan los agradecimientos para el.
>
> INICIO --
>
>Declare @objname nvarchar(776)
>Create table ##Listado (Objname nvarchar(776))
>
>declare Lista cursor for
>
> Select name from sysobjects
> where xtype='P'
> open lista
>
> Fetch lista into @objname
> while @@fetch_status=0
> Begin
> if exists(Select 1 from syscomments
> where id = object_id(@objname) and encrypted= 0
> and Patindex(Upper('%ACA COLOCAS LO QUE QUIERES
>BUSCAR%'),Upper(text))<>0)
> begin
> insert ##listado select @objname
> end
> Fetch lista into @objname
> End
>
> Close Lista
> Deallocate Lista
>
>Select * from ##listado
>drop table ##listado
>
> FIN
>
>Saludos !
>
>Emilio Boucau
>Microsoft MVP SQL Server
>http://www.portalsql.com
>PASS Spanish Group
>http://www.sqlpass.org
>
>Buenos Aires - Argentina
>
>
>.
>
Respuesta Responder a este mensaje
#4 Eladio Rincon
05/07/2003 - 13:55 | Informe spam
Hola,

también podrías obtenerlo desde information_schema:

select routine_name
from information_schema.routines
where
routine_type = 'PROCEDURE'
and routine_definition like 'tu_texto'


Saludos,

Eladio Rincón
MCP, SQL Server MVP
http://eu.webmatrixhosting.net/Eladio

"Comparte lo que sabes, aprende lo que no sepas", FGG

"Justing Xiang" escribió en el mensaje
news:
También podrías hacer simplemente una query.
Select name
from sysobjects
where type = 'P'
and id in (Select id from syscomments where text like '%..%')
Un saludo,
Justingx



"CAFC" escribió en el mensaje
news:5dae01c3424d$fb80c0a0$
> Impecable, Notable. Es justo lo que busco.
> Muchisimas gracias Emilio.
> Saludos
> Cristian.
>
> >Hola,
> >
> >este SP lo guarde de aqui del foro. No recuerdo (ni
> anote... mea culpa) el
> >autor, vayan los agradecimientos para el.
> >
> > INICIO --
> >
> >Declare @objname nvarchar(776)
> >Create table ##Listado (Objname nvarchar(776))
> >
> >declare Lista cursor for
> >
> > Select name from sysobjects
> > where xtype='P'
> > open lista
> >
> > Fetch lista into @objname
> > while @@fetch_status=0
> > Begin
> > if exists(Select 1 from syscomments
> > where id = object_id(@objname) and encrypted= 0
> > and Patindex(Upper('%ACA COLOCAS LO QUE QUIERES
> >BUSCAR%'),Upper(text))<>0)
> > begin
> > insert ##listado select @objname
> > end
> > Fetch lista into @objname
> > End
> >
> > Close Lista
> > Deallocate Lista
> >
> >Select * from ##listado
> >drop table ##listado
> >
> > FIN
> >
> >Saludos !
> >
> >Emilio Boucau
> >Microsoft MVP SQL Server
> >http://www.portalsql.com
> >PASS Spanish Group
> >http://www.sqlpass.org
> >
> >Buenos Aires - Argentina
> >
> >
> >.
> >


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