如题,能查询出带参数的存储过程有哪些,参数分别是什么,参数的类型是什么。多谢指教!

解决方案 »

  1.   


    SELECT  SPD.name '名称' ,
            SPM.name '参数名称' ,
            STP.name '变量类型' ,
            SPM.max_length '长度' ,
            SPM.is_output '是否返回值'
    FROM    sys.procedures SPD
            LEFT JOIN sys.parameters SPM ON SPD.object_id = SPM.object_id
            LEFT JOIN sys.types STP ON SPM.system_type_id = STP.system_type_id
    ORDER BY SPD.name
    参考
      

  2.   

    存储过程中怎样替换一段文本,比如:我想把变量的数据类型长度放大:@Param Varchar(20)改为:@Param Varchar(50)
      

  3.   

    通过alter修改存储过程就行了
      

  4.   


    alter procedure P_test
    @Param Varchar(50)
    as
    begin 
    --代码段
    end相当于重新设定存储过程代码
      

  5.   

    怎样批量替换存储过程中一段文本,比如:我想把变量的数据类型长度放大:@Param Varchar(20)改为:@Param Varchar(50)
      

  6.   

    SELECT definition
    FROM sys.sql_modules SM
    WHERE EXISTS(SELECT 1 FROM sys.procedures SPD WHERE SM.object_id = SPD.object_id)--获取后,替换所有的create procedure 为alter procedure,再替换所有的@parameter varchar(20) 为@parameter varchar(50)
    --替换后,执行替换后代码即可。--建议:还是一个一个来比较稳当些,毕竟存储过程的影响较大