SQL-计算所有存储过程中特定单词的出现次数

时间:2012-05-25 05:48:14

标签: sql sql-server sql-server-2008 tsql

我需要计算所有存储过程中特定单词的出现次数。

即。 “place”这个词出现在特定数据库中的所有存储过程中多少次?

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

1 个答案:

答案 0 :(得分:4)

我会以这种方式使用object_definition functionsys.procedures view

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