利用SQL语句查找某数据库中所有存储过程包含的内容
生活随笔
收集整理的這篇文章主要介紹了
利用SQL语句查找某数据库中所有存储过程包含的内容
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
查找存儲過程包含內(nèi)容
Use?數(shù)據(jù)庫
DECLARE?@ProcName?varchar(50)
Create?Table?#tmpName(Content??varchar(2000))
Create?Table?#tmp(ProcName??varchar(2000),Content1?varchar(8000))
--定義一個游標
DECLARE?SearchProc?CURSOR?FOR
--查詢數(shù)據(jù)庫中存儲過程的名稱,盡量去除系統(tǒng)PROC,可以根據(jù)crdate時間字段來尋找非系統(tǒng)PROC
select?name?from?sysobjects?where?type='P'?and?name?not?like?'dt_%'
OPEN?SearchProc
FETCH?NEXT?FROM?SearchProc?
INTO?@ProcName
WHILE?@@FETCH_STATUS?>=0
BEGIN
????Print?@ProcName
????Insert?Into?#tmpName(Content)?Exec?sp_helptext?@ProcName
????Insert?Into?#tmp(ProcName,Content1)?select?@ProcName,#tmpName.Content?from?#tmpName
????--填充完就清空一下臨時表
????Truncate?table?#tmpName
????FETCH?NEXT?FROM?SearchProc
????INTO?@ProcName
END
CLOSE?SearchProc
DEALLOCATE?SearchProc
GO
select?ProcName?from?#tmp?where?Content1?like?'%查找內(nèi)容%'?group?by?ProcName
select?ProcName,Content1?from?#tmp?where??Content1?like?'%查找內(nèi)容%'
select?ProcName,Content1?from?#tmp?where??procname='存儲過程名稱'
--刪除臨時表
Drop?Table?#tmpName
Drop?Table?#tmp
Use?數(shù)據(jù)庫
DECLARE?@ProcName?varchar(50)
Create?Table?#tmpName(Content??varchar(2000))
Create?Table?#tmp(ProcName??varchar(2000),Content1?varchar(8000))
--定義一個游標
DECLARE?SearchProc?CURSOR?FOR
--查詢數(shù)據(jù)庫中存儲過程的名稱,盡量去除系統(tǒng)PROC,可以根據(jù)crdate時間字段來尋找非系統(tǒng)PROC
select?name?from?sysobjects?where?type='P'?and?name?not?like?'dt_%'
OPEN?SearchProc
FETCH?NEXT?FROM?SearchProc?
INTO?@ProcName
WHILE?@@FETCH_STATUS?>=0
BEGIN
????Print?@ProcName
????Insert?Into?#tmpName(Content)?Exec?sp_helptext?@ProcName
????Insert?Into?#tmp(ProcName,Content1)?select?@ProcName,#tmpName.Content?from?#tmpName
????--填充完就清空一下臨時表
????Truncate?table?#tmpName
????FETCH?NEXT?FROM?SearchProc
????INTO?@ProcName
END
CLOSE?SearchProc
DEALLOCATE?SearchProc
GO
select?ProcName?from?#tmp?where?Content1?like?'%查找內(nèi)容%'?group?by?ProcName
select?ProcName,Content1?from?#tmp?where??Content1?like?'%查找內(nèi)容%'
select?ProcName,Content1?from?#tmp?where??procname='存儲過程名稱'
--刪除臨時表
Drop?Table?#tmpName
Drop?Table?#tmp
轉載于:https://www.cnblogs.com/hanguoji/archive/2007/04/04/699925.html
總結
以上是生活随笔為你收集整理的利用SQL语句查找某数据库中所有存储过程包含的内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软Http错误Code解析
- 下一篇: NHibernate 配置文件的处理和使