Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...