Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL- Contar ocorrências de uma palavra específica em todos os procedimentos armazenados


Eu usaria object_definition função e sys.procedures ver Por aqui:
declare @word varchar(128)
set @word = 'place'

select name, (len(object_definition(object_id)) -  len(replace(object_definition(object_id), @word, ''))) / len (@word) as qty
from sys.procedures
where object_definition(object_id) like '%'[email protected]+'%' and type = 'P'
order by name

Adicionado após o comentário, todas as ocorrências de palavra específica em todos os procedimentos armazenados:
declare @word varchar(128)
set @word = 'place'

select sum((len(object_definition(object_id)) -  len(replace(object_definition(object_id), @word, ''))) / len (@word)) as qty
from sys.procedures
where object_definition(object_id) like '%'[email protected]+'%'

Aqui está um exemplo de trabalho (e atualizado após o comentário):http://sqlfiddle.com/#! 3/a759c/7