sql >> Base de Datos >  >> RDS >> Sqlserver

SQL:cuenta las ocurrencias de una palabra específica dentro de todos los procedimientos almacenados

Usaría object_definition función y sys.procedures ver de esta manera:

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

Añadido después del comentario, todas las apariciones de una palabra específica en todos los procedimientos almacenados:

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]+'%'

Aquí está el ejemplo de trabajo (y actualizado después del comentario):http://sqlfiddle.com/#! 3/a759c/7