Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jothaz

[Resolvido] Pesquisa/lista SP´s através de parâmetro informado

Recommended Posts

Camaradas,

 

Segue o código de uma sp para pesquisar caracteres no texto de todas sp´s do banco de dados:

CREATE PROC PESQUISA_TEXTO_PROC	@TEXTO_PROCURADO VARCHAR(50)AS	DECLARE @NOME_PROC AS VARCHAR(100), @TEXTO_PROC AS VARCHAR(8000)	DECLARE MYCURSOR CURSOR FOR	--	--Seleciona todas as stored procedures do banco de dados	--efetua JOIN com SYSCOMMENTS para recuperar texto sp	SELECT	 OBJ.NAME, TEXT	FROM	 SYSOBJECTS OBJ			INNER JOIN SYSCOMMENTS COM			ON OBJ.ID = COM.ID	WHERE TYPE = 'P'	OPEN MYCURSOR	FETCH NEXT FROM MYCURSOR	INTO @NOME_PROC,@TEXTO_PROC	WHILE @@F ETCH_STATUS = 0	BEGIN		--		--Verifica se parâmetro @TEXTO_PROCURADO existe no texto da sp		IF CHARINDEX(@TEXTO_PROCURADO,@TEXTO_PROC) > 0		BEGIN			PRINT @NOME_PROC		END   		FETCH NEXT FROM MYCURSOR		INTO @NOME_PROC,@TEXTO_PROC	ENDCLOSE MYCURSORDEALLOCATE MYCURSORGO
Considerações:

[*]Para utilizar: PESQUISA_TEXTO_PROC 'string'

[*]Neste exemplo varremos o banco de dados filtrando as stored procedures e pesquisamos no conteúdo do texto das mesma uma sequência de caracteres passada como parâmetro.

[*]Para obtermos o conteúdo do texto da strore procedure efetuamos um JOIN entre as tabelas de sistema: SYSOBJECTS (onde localiza-se o nome e id dos objetos) e SYSCOMMENTS (onde localiza-se o conteúdo do texto da sp). Depois pesquisamos o texto passado como parâmetro no compo de nome TEXT tabela SYSCOMMENTS.

[*]Talvez o exemplo não tenha muitas aplicações práticas mas pode ser adaptado e melhorado de acordo com a necessidade de cada um

Fonte/Autor/link

AUTOR: "Jothaz"

 

Dúvidas, criticas, contribuições, correções e adições serão bem vindas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.