2011-09-07 21 views
5

Solo necesito buscar a través de todos los procedimientos almacenados en mi base de datos buscando uno que contenga "elemento" en su nombre. ¿Algunas ideas?¿Cómo encontrar los procedimientos almacenados por nombre?

he estado jugando un poco con esto, pero no es bastante todavía:

SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%' 
+0

@Aaron, que significaba Sí Routine_Name y no me di cuenta de que lo que sugirió que podría ser obsoleta y super cedido con mejores alternativas. Lo había hecho hace unos 2 años y pensé que sería apropiado todavía. Eliminaré mi comentario. –

+1

Ver la respuesta de @ Martin. Si desea aquellos en los que la * definición * contiene "elemento", use 'WHERE OBJECT_DEFINITION ([object_id]) LIKE '% item%';'. Y por favor no use syscomments, ya no es el año 2000. :-) –

+0

Posible duplicado de [Buscar procedimiento almacenado por nombre] (http://stackoverflow.com/questions/3574244/find-stored-procedure-by-name) – nathanchere

Respuesta

4

para encontrar aquellas que contienen la cadena "artículo" en el nombre.

select schema_name(schema_id) as [schema], 
     name 
from sys.procedures 
where name like '%Item%' 
2

This también lo pueden ayudar en este tema. También funciona cuando hay bases de datos con diferentes intercalaciones. Y puede encontrar el procedimiento pasando el nombre del procedimiento exacto o parte de su nombre.

2

Puede utilizar nueva consulta en Server 2008:

use dbName 
go 

print object_definition(object_id('storedProcedureName')) 

Usted recibirá contenido del procedimiento.

1

Con SQL, solo puede usar los comodines% y _. Si desea una búsqueda más potente, puede usar SchemaCrawler. SchemaCrawler puede buscar rutinas usando expresiones regulares que coinciden con el nombre. Incluso puede buscar dentro de la definición de rutina usando expresiones regulares.

Sualeh Fatehi, SchemaCrawler

Cuestiones relacionadas