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


    将如下内容执行在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

  • 相关阅读:
    【goframe】ORM驱动开发
    “大将辈出”培训笔记
    axios在vue中的使用
    python 获取全年日期及日期详情
    微信小程序获取手机号授权完整实现
    Mac升级node.js
    【Oracle】Oracle开启和关闭闪回
    【Oracle】将RAC闪回到指定的闪回点
    【Oracle】Oracle 12C Far Sync
    【Docker】docker镜像下载到本地并在其他机器恢复
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/1091068.html
Copyright © 2020-2023  润新知