快捷键浏览存储过程的内容(执行文中的User Store Proc,设置快捷方式的指向usp_Name)

虽然不常用,但使用时还是在用传统方法查看存储过程的内容, sp_helptext usp_Name;
下面这段执行后可设置快捷查询usp的内容(但是需要在每个数据库下都存在,不能直接在master,并且执行后需要重新启动才生效)
需要在多个Tabsheet中切换查询浏览时,SSMS查看的方法打开Tabsheet也较少,NaviCAT Premium可打开10个TabSheet还是不够,需要20个才好.
(图片中内容与usp_name不一样,是因为在不同库中设置过,要一致)
   

 

 

 --查看存储过程源码 
    create procedure mp_helptext(  
        @name varchar(255)  
    )  
    as  
    declare @object_id int,  
                    @sourcecode varchar(max),  
                    @line varchar(max),  
                    @end int,  
                    @rn varchar(2),  
                    @tab varchar(1)  
                      
    declare @source table(  
        source varchar(max)  
    )  
      
    set @rn = char(13)+char(10)  
    set @tab = char(9)  
      
      
    select @sourcecode = definition from sys.sql_modules where object_id=object_id(@name)  
      
    while(charindex(@rn,@sourcecode)!=0)  
    begin  
        set @end=charindex(@rn,@sourcecode)  
        set @line = replace(substring(@sourcecode,1,@end-1),@tab,@tab+@tab)  
        if(charindex('create',@line)<>0 and (charindex('proc',@line)<>0 or charindex('view',@line)<>0 or charindex('function',@line)<>0 or charindex('trigger',@line)<>0))  
        begin  
            set @line = replace(@line,'create','alter')  
        end  
        insert into @source(source) values(@line)  
        set @end = @end + 2  
        set @sourcecode = substring(@sourcecode,@end,len(@sourcecode))  
    end  
    insert into @source(source) values(@sourcecode)  
      
    select * from @source  

 

posted @ 2020-05-21 14:22  CDPJ  阅读(230)  评论(0编辑  收藏  举报