Arquivo de etiquetas: syscomments

Pesquisar stored procedures no SQL

Olá,
o artigo de hoje tem por objectivo facultar um script de pesquisa de stored procedures SQL através de qualquer palavra chave que nos recordemos.

Imaginemos que queremos saber se existe alguma “stored procedure” relacionada com a palavra “irregularidade”, mas que não sabemos de facto de existe ou qual seu nome – algo muito comum pelo menos comigo!

Para o caso a analisar, atentemos o seguinte código SQL:

select top 10 * from sys.syscomments where text like ‘%irregul%’

Este código permite pesquisar sp com uma palavra chave que imaginamos possa existir :

Do resultado obtido, a reter será o “id” e a coluna “text”, sendo respectivamente o identificador e o conteúdo do objecto SQL.

De seguida, poderemos escrever a seguinte linha de código:

select top 10 * from sys.all_objects where object_id=’178405579′

que nos mostra os objectos “stored procedures”, cuja identificação é ‘178405579’, ou seja, a mesma retirada do código anterior “id”.

Atente-se no resultado obtido onde se pode verificar que é uma “stored procedure”, em que data foi criada e alterada e respectivo nome.

Já agora, o top 10 neste caso não serve para nada, é apenas uma questão de não stressar o SQL no caso de existirem muitos registos.

Por fim, poderemos juntar ambos os códigos e cruzar as tabelas obtendo um script simples e mais intuitivo:

select * from sys.syscomments A
inner join sys.all_objects B
on A.id = B.object_id
where A.text like ‘%irregul%’

Repare-se que a palavra chave pode ser mesmo qualquer coisa que pensemos existir no processo, poderia ser uma variável como “@irreg”.

O resultado está na imagem seguinte:

Só falta mesmo construir o script com a definição da variável no topo de forma a alterar a mesma na pesquisa…mas como o código é demasiado pequeno não me dou ao trabalho, basta alterar a palavra chave no código acima.

Espero que vos seja útil,

JG