Pesquisar um texto dentro de uma Procedure, View ou Function
Atualizado: 6 de out. de 2022
Fala galera!!
Neste post vou apresentar uma query que já me ajudou muito.
As vezes queremos procurar algo que esteja dentro de uma determinada procedure, function ou view, mas como encontrar? Temos que abrir todas as procedures do banco de dados até encontrarmos o que queremos? A resposta é não!
Através da query abaixo é possível pesquisarmos o conteúdo de uma procedure (caso o campo TYPE da tabela SYSOBJECTS seja = ‘P’), view (caso o campo TYPE da tabela SYSOBJECTS seja = ‘V’) ou function (caso o campo TYPE da tabela SYSOBJECTS seja = ‘F’).
SELECT
A.NAME
FROM SYSOBJECTS A
INNER JOIN SYSCOMMENTS B
ON A.ID = B.ID
WHERE
B.TEXT LIKE '%CATEGORIA%' -- Informação a ser procurada no corpo da procedure, funcao ou view
AND A.TYPE = 'P'-- Tipo de objeto a ser pesquisado no caso exemplo vamos pesquisar nas procedures (P)
Resultado da query:.

Vou dar um exemplo real onde tive que usar esta query…
Demanda que me solicitaram: Substituir uma determinada tabela em todos os objetos que a utilizam no banco de dados (procedures, views e functions). Motivo: Mudamos uma regra de negócio e agora a informação correta deverá ser buscada em outra tabela. Solução: Utilizei a query acima e pesquisei todos os objetos que utilizam esta tabela, depois tive que entrar em cada um deles e substituir o nome da tabela antiga para a tabela nova.
Espero que este post seja útil para vocês e até a próxima!!