Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como buscar uma string no código de SP’s que são chamadas por jobs do SQL Agent

Visualizações: 278 views
Tempo de Leitura: 4 minutos

Olá pessoal,
Tudo bem ?

Nesse post vou compartilhar com vocês uma necessidade que tive na sexta-feira, onde um servidor de arquivos ficaria desligado por algumas horas para manutenção e precisava identificar quais os jobs que acessavam esse servidor e por isso, seriam impactados por essa manutenção, ou seja, buscar uma string no código de SP’s que são chamadas por jobs do SQL Agent.

Um outro exemplo em que isso pode ser bem útil, é para identificar os jobs que acessam uma determinada tabela do banco de dados, caso ela precise sofrer alguma alteração ou manutenção, por exemplo, e você precise dessa informação para avaliar os impactos.

Pois bem, para conseguir automatizar isso, criei uma SP que irá varrer todos os databases da sua instância (utilizando a sp_msforeachdb), lendo a view sys.sql_modules de cada banco. Após identificar todas as SP’s ou funções que possuem a determinada string que você está buscando, a rotina faz um cruzamento dessas informações com as views do SQL Agent para identificar quais jobs que chamam essas SP’s.

Código fonte da SP

Para conseguir realizar essa verificação, basta utilizar o código-fonte abaixo, que também está disponível neste GitHub. Fique à vontade para sugerir alterações e melhorias. Uma delas, é que a SP abaixo funcione quando o job chama uma SP, que chama outra SP e esta sim, possui a string que estamos buscando.

Exemplo de uso:

É isso aí, pessoal! Espero que tenham gostado dessa SP, um abraço e até o próximo post.