SQL的所有存储过程中计数的特定词的出现(SQL- Count occurrences of a s

2019-09-17 12:28发布

我需要计算一个特定的词的出现在我所有的存储过程。

即多少次这个词“地点”发生在所有的存储过程的一个特定的数据库中?

我试图做到这一点使用游标,但我没有得到任何地方!

Answer 1:

我会用object_definition功能和sys.procedures查看是这样的:

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 '%'+@word+'%' and type = 'P'
order by name

添加评论后,在所有存储过程中的特定单词的所有实例:

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 '%'+@word+'%'

这里是工作(和评论后更新)例如: http://sqlfiddle.com/#!3/a759c/7



文章来源: SQL- Count occurrences of a specific word within all stored procedures