Banco de Dados - SQL Server

Dica para buscar nome de tabelas ou stored procedures dentro do banco de dados

Olá pessoal, hoje gostaria de entrar em uma área que não muito a minha. Como eu aprendi a fazer, resolvi compartilhar com vocês.

por Mauricio Junior



Olá pessoal, hoje gostaria de entrar em uma área que não muito a minha. Gosto de usar e sei fazer algumas coisas mas não sou totalmente especializado. Aprendi um dia desses e então resolvi compartilhar com você leitor, vale a pena ler.

É simples e fácil de utilizar, mas antes de mostrar gostaria de explicar melhor a situação melhorando assim o entendimento.

Necessário para executar
Banco de dados SQL Server
Microsoft SQL Server Management Studio

No meu caso que pode ser o seu também, peguei um sistema que foi desenvolvido por outra pessoa que acabou saindo da empresa. Notei que ele usou para fazer select, insert, update e delete, storeds procedures.

Uma chama a outra ou existem duas dentro de uma maior e assim por diante, ou seja, o sistema parece mais uma orientação a procedure do que orientado a objetos. No meu ponto de vista, chamar procedure dentro de procedure não é muito bom, isso porque a manutenção pode se tornar problemática, e se alguma procedure der problema, para achá-la fica mais difícil.

Esse é o meu ponto de vista como arquiteto de software que sou, não condeno quem faça (gostaria de deixar claro isso).

Com essa pequena história, precisei verificar uma procedure que estava dando erro no sistema, mas dentro do aplicativo ela não era chamada, isto é, dentro do código fonte do aplicativo.

Constatei que, estava sendo chamada dentro de uma procedure qualquer e para achar isso aprendi fazer um select no banco para procurar esse tipo de coisa. Abri o Management Studio e digitei. (Code 1.1)

select object_name(id) from syscomments where text like "%spu_Luxo_Insere%"
Code 1.1


O nome da procedure que estava procurando era spu_Luxo_Insere. Não sabia quem estava chamando a procedure. O select object_name retorna os nomes dos objetos como o nome de tabela, procedure e outros. O syscomments busca em todo o banco registrado internamente. O texto que precisava era o nome da procedure, com isso foi colocado o comando like com percente antes e depois.

Em outro momento precisei achar outro comentário, pesquisei pelo nome gráfico. Code 1.2.

select object_name(id) from syscomments where text like "%grafico%"
Code 1.2


Note como foi fácil executar os dados, automaticamente o banco de dados mostrou quem estava chamando e onde estava.

Eu fico por aqui e espero ter ajudado. Qualquer dúvida pode entrar em contato pelo site.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org