zoukankan      html  css  js  c++  java
  • 将所有存储过程的某个参数,修改成另一个定义

    --* 感謝CSDN的zjcxc(: 邹建 :)
    declare @o_para varchar(100),@n_para varchar(100)
    select @o_para='@resname varchar(10)' --你的存储过程中,参数原来的定义
     ,@n_para='@resname varchar(100)' --新的参数定义
    declare tb cursor for
    select name=object_name(id),id,colid
    from syscomments 
    where objectproperty(id,'IsProcedure')=1 and status=0
     and text like '%'+@o_para+'%'
    order by name
    declare @s1 varchar(8000),@s2 varchar(8000),@s3 varchar(8000),@s4 varchar(8000)
     ,@name sysname,@id int,@colid int,@oid int
    open tb
    fetch next from tb into @name,@id,@colid
    select @s2='',@s3=''
    while @@fetch_status=0
    begin
     if @oid<>@id
     begin
      exec(@s1)
      exec(@s2+'
    '+@s3+'
    '+@s4+')')  
      select @s1='drop proc ['+@name+']'
       ,@s2='declare @'+cast(@colid as varchar)+' varchar(8000)'
       ,@s3='select @'+cast(@colid as varchar)+'=replace(text,'''
        +@o_para+''','''+@n_para+''')
       from syscomments where id='+cast(@id as varchar)
       +' and colid='+cast(@colid as varchar)
       ,@s4='exec(@'+cast(@colid as varchar)
     end
     else
      select @s2=@s2+',@'+cast(@colid as varchar)+' varchar(8000)'
       ,@s3=@s3+'
    select @'+cast(@colid as varchar)+'=replace(text,'''
        +@o_para+''',''@resname varchar(200)'')
       from syscomments where id='+cast(@id as varchar)
       +' and colid='+cast(@colid as varchar)
       ,@s4=@s4+'+@'+cast(@colid as varchar)
     set @oid=@id
     fetch next from tb into @name,@id,@colid
    end
    close tb
    deallocate tb
    
  • 相关阅读:
    工作中会用到的知识点(二)
    canvas 绘制图形
    CSS 清除浮动的方法
    倒计时
    JavaScript 对象
    推荐一款分页插件
    HTML5 Video标签
    idea lua插件设置Lua SDK
    Springboot访问 图片image css js资源文件
    nginx基本配置与参数说明
  • 原文地址:https://www.cnblogs.com/Dream/p/4095.html
Copyright © 2011-2022 走看看