Categorias

Localizar procedures que contenham determinada palavra

Saudações a todos. Hoje lhe apresento um script SQL SERVER muito simples, porém de muita utilidade. Com este é possível localizar uma procedure, função ou view que contenha uma palavra especifica, esta palavra pode ser um comando um comentário o nome de uma tabela enfim o que você bem quiser.

Como funciona, procuro nas tabelas de sistemas do SQL SERVER, o objeto desejado e faço join com a outra tabela tambem de sistema para listar o conteudo da procedure.

o campo do TYPE armazena o tipo do objeto a ser localizado, onde :
U => Tabela Usuário
S => Tabela de sistema
P => Procedure
V => View
F => Function

-- Acessando o banco de dados onde desejo a pesquisa

USE [Nome do Banco]
GO

-- Iniciando a pesquisa nas tabelas de sistemas

SELECT A.NAME, A.TYPE, B.TEXT
  FROM SYSOBJECTS  A (nolock)
  JOIN SYSCOMMENTS B (nolock) 
    ON A.ID = B.ID
WHERE B.TEXT LIKE '%SELECT DISTINCT%'  --- Informação a ser procurada no corpo da procedure, funcao ou view
  AND A.TYPE = 'P'                     --- Tipo de objeto a ser localizado no caso procedure
 ORDER BY A.NAME

GO