すべてのストアド プロシージャで特定の単語の出現回数をカウントする必要があります。
つまり、特定のデータベース内のすべてのストアド プロシージャで「場所」という単語が何回出現しますか?
カーソルを使用してこれを実行しようとしましたが、どこにも行きません!
すべてのストアド プロシージャで特定の単語の出現回数をカウントする必要があります。
つまり、特定のデータベース内のすべてのストアド プロシージャで「場所」という単語が何回出現しますか?
カーソルを使用してこれを実行しようとしましたが、どこにも行きません!
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