279 votos

Buscar texto en el procedimiento almacenado en Sql Server

Quiero buscar un texto de todos mis procedimientos almacenados en la base de datos. Utilizo el siguiente SQL:

SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m 
INNER JOIN sys.objects o 
ON m.object_id=o.object_id
WHERE m.definition Like '%[ABD]%'

Quiero buscar [ABD] en todos los procedimientos almacenados, incluyendo los corchetes, pero no está dando el resultado adecuado. Por favor, dígame cómo puedo cambiar mi consulta para lograr esto.

209voto

Mahmoud Gamal Puntos 46598

Escapa de los corchetes:

...
WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'

Entonces los corchetes serán tratados como una cadena de literales no como comodines.

70voto

user27332 Puntos 39

Pruebe esta petición:

SELECT name
FROM   sys.procedures
WHERE  Object_definition(object_id) LIKE '%strHell%'

Para más detalles: http://www.zilckh.com/how-to-search-a-text-in-stored-procedure-trigger-function-or-view/

30voto

David Smithers Puntos 600

¿Ha intentado usar algunas de las herramientas de terceros para hacer la búsqueda? Hay varias disponibles por ahí que son gratuitas y que me ahorraron una tonelada de tiempo en el pasado.

Abajo hay dos SSMS Addins que usé con buen éxito.

Búsqueda ApexSQL - Busca tanto el esquema como los datos en las bases de datos y tiene características adicionales como el seguimiento de la dependencia

Paquete de herramientas de SSMS - Tiene la misma funcionalidad de búsqueda que la anterior y varias otras características interesantes. No es gratis para Sql Server 2012 pero aún así es muy asequible.

Sé que esta respuesta no está relacionada al 100% con las preguntas (que eran más específicas) pero espero que otros la encuentren útil.

13voto

steoleary Puntos 4117

La búsqueda SQL de Redgate es una gran herramienta para hacer esto, es un plugin gratuito para SSMS.

12voto

Daniel Kelley Puntos 4484

Normalmente hago lo siguiente para conseguirlo:

select distinct object_name(id) 
from syscomments 
where text like '%[ABD]%'
order by object_name(id)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X