ストアドプロシージャ内をGrepしたいなぁと思ったら、あった。
ネットからの拾いもの。
--スカラ関数
--@SpName : プロシージャの中味を取得するためのプロシージャ名
Create Function fncFindSp (
@SPName Varchar(255)
)
Returns Varchar(8000) As
Begin
Declare @SpBody Varchar(8000)
Declare @RetText Varchar(8000)
Set @SpBody = ''
Set @RetText = ''
Begin
Declare Cur1 Cursor For
Select syscomments.text
From sysobjects
Inner Join syscomments
On sysobjects.id = syscomments.id
Where sysobjects.xtype = 'P'
And sysobjects.status >= 0
And sysobjects.name = @SPName
Order By
syscomments.colid
Open Cur1
Fetch Next From Cur1 Into @SpBody
While (@@Fetch_Status <> -1)
begin
If @SpBody <> ''
Begin
If RTrim(@RetText) = ''
Begin
Set @RetText = @SpBody
End
Else
Begin
Set @RetText = @RetText + @SpBody
End
End
Fetch Next From Cur1 Into @SpBody
End
Close Cur1
End
Return @RetText
End
go
--Grep用ストアド
--@seachWord : ストアドプロシージャ内を検索する文字列
Create Procedure spGrep
@seachWord Varchar(255)
As
BEGIN
select X.*
from
(
Select
sysobjects.[name] As ProcName ,
dbo.fncFindSp(sysobjects.[name]) as ProcBody
From sysobjects
) X
where X.ProcBody like '%'+@seachWord + '%'
END
実行
EXEC dbo.spGrep '検索文字列'
go
参考⇒ここ
emura 10:04 AM | 2013年7月16日 パーマリンク | ログインして返信する
もう自分用メモみたいなもんですw
shinden 2:36 AM | 2013年7月16日 パーマリンク | ログインして返信する
ホントに誰も見てなくても頑張ってるねw