Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Procurando String ou Texto em Stored Procedures

Olá pessoal, tudo certo com vocês?

Nesse artigo vou mostrar para vocês como pesquisar um determinado texto ou string dentro de uma Stored Procedure.

As vezes precisamos saber se um determinado campo ou texto está sendo utilizado em alguma procedure e dependendo do sistema pode haver milhares de Stored Procedures, tornando essa tarefa um pouco trabalhosa.

Bom vamos lá!

Podemos utilizar a VIEW de sistema chamada INFORMATION_SCHEMA.ROUTINES, através dela podemos através do campo ROUTINE_DEFINITION.

USE AdventureWorks2017

DECLARE @STRING VARCHAR(255)

SET @STRING = 'BOMLevel'

SELECT SPECIFIC_NAME
	,SPECIFIC_CATALOG
	,SPECIFIC_SCHEMA
	,ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%' + @STRING + '%'

Também podemos utilizar a view sys.procedures para atingir o mesmo objetivo.

USE AdventureWorks2017

DECLARE @STRING VARCHAR(255)

SET @STRING = 'BOMLevel'

SELECT DB_NAME() AS DBName
	,NAME StoredProcedure
	,OBJECT_DEFINITION(OBJECT_ID) AS StoredProcedureText
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%' + @STRING + '%'

Ainda existe uma outra view a sys.syscomments que pode nos auxiliar no processo de localização do texto ou string.

USE AdventureWorks2017

DECLARE @STRING VARCHAR(255)

SET @STRING = 'BOMLevel'

SELECT OBJECT_NAME(id) ObjectName     
	,TEXT AS ObjectText
FROM sys.syscomments
WHERE TEXT LIKE '%' + @STRING + '%'

É isso pessoal, até o próximo post.

Close Bitnami banner
Bitnami