Eu uso o script a seguir para pesquisar o texto de todos os procedimentos armazenados quando desejo encontrar valores específicos.
SELECT ROUTINE_NAME, ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE @searchText
ORDER BY ROUTINE_NAME
Eu descobri recentemente que ROUTINE_DEFINITION
para após 4.000 caracteres, então alguns procedimentos não estavam sendo retornados quando deveriam.
Como posso consultar o texto completo de um procedimento armazenado para um valor?
Use um de
Nunca use
Do BOL, em
INFORMATION_SCHEMA.ROUTINES
:Nome da coluna:
ROUTINE_DEFINITION
Tipo de dados:
nvarchar(4000)
Descrição: Retorna os primeiros 4.000 caracteres do texto de definição da função ou procedimento armazenado se a função ou procedimento armazenado não estiver criptografado. Caso contrário, retorna NULL. Para garantir a obtenção da definição completa, consulte a função OBJECT_DEFINITION ou a coluna de definição na exibição do catálogo sys.sql_modules .
Portanto, você pode visualizar o restante alterando seu script da seguinte maneira:
A coluna com alias acima como
FullDefinition
retornará o restante do conteúdo comonvarchar(max)
.Para obter mais detalhes, consulte minha postagem no blog: Como pesquisar um texto em Stored Procedure, Trigger, Function ou View