• 在所有存储过程中查找关键字


    将如下内容执行在master库里,即可在所有库里执行,按关键字对存储过程内容进行搜索,

    名字sp_findproc前的sp_好像必需,否则在其他数据库中执行,会提示找不到。

    CREATE    PROCEDURE [dbo].[sp_findproc] (@akey varchar(255)) AS

    -- 在所有存储过程中查找关键字,关键字不区分大小写
    declare @aname as varchar(700)
    declare @atext as varchar(8000)
    declare @acolid as int
    declare @pos as int 
    declare @start as int
    declare @end as int
    declare @shorttext as varchar(255)
    create table #temp_proctext (oid int IDENTITY (11),name varchar(700),text varchar(255),pos int)
    declare proctext_cursor cursor local  for
    select  A.name ,B.text,B.colid from sysobjects A,syscomments B  where A.id=B.id and A.type='P' 
    and  B.text like '%'+@akey+'%' order by A.Name,B.colid
    open proctext_cursor
    FETCH NEXT FROM proctext_cursor INTO @aname@atext@acolid
    while (@@FETCH_STATUS = 0
    begin
     
    set @pos = charindex(@akey,@atext,1)
     
    while(@pos >0)
     
    begin 
           
    set @start = @pos - 10
           
    if @start <=0 
              
    set @start =1
           
    set @end = @pos + len(@akey+20
           
    if @end > len(@atext
              
    set @end = len(@atext
           
    set @shorttext = Substring(@atext,@start,@end - @start)
           
    insert into #temp_proctext values(@aname,@shorttext,(@acolid-1)*4000+@pos)       
           
    set @pos = charindex(@akey,@atext,@end)   
     
    end
     
    FETCH NEXT FROM proctext_cursor INTO @aname@atext@acolid
    end
    CLOSE proctext_cursor
    DEALLOCATE proctext_cursor
    select name,pos,text from #temp_proctext order by oid
    drop table #temp_proctext


    GO

  • 相关阅读:
    你不是在拯救世界就是在拯救世界的路上
    你可以去当程序员了
    郭美美是个好姑娘
    据说有个老太太
    生命的尽头
    有关程序的50个至理名言
    程序员是这样的
    新买移动硬盘
    如果有天你看到我疯了,其实就是你疯了
    写字楼里写字间
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/1091068.html
Copyright © 2020-2023  润新知