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.