是这样的,有一个信息系统,没有源代码。.net c#环境,都是编译过的。
我想修改一个存储过程,但是太多了,我想利用关键字搜索存储过程里面的程序缩小范围
列出满足要求的存储过程。这个事情怎么做?

解决方案 »

  1.   

    Ctrl + F  输入关键字 回车即可。LZ这个可以看到存储过程的话,里面的代码,可以有搜索来定位。
      

  2.   

    sp_depends 表名
    查找与该表相关的对象
      

  3.   

    这段代码可以显示出存储过程的内容.
    SELECT DISTINCT TOP 100 PERCENT o.xtype, CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程' END AS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间, c.text AS 声明语句 FROM dbo.sysobjects o LEFT OUTER JOIN dbo.syscomments c ON o.id = c.id WHERE (o.xtype IN ('X', 'TR', 'C', 'V', 'F', 'IF', 'TF', 'FN', 'P', 'PK')) AND (OBJECTPROPERTY(o.id, N'IsMSShipped') = 0) ORDER BY CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程' END DESC把上面的语句做为子查询,然后:
    select * from (...) t where xtype = 'P' and charindex(你的内容,声明语句) > 0