在SQL Server 2000中查找包含其内容的存储过程名称

Kin*_*ngs 13 sql stored-procedures sql-server-2000

对于存储过程,我有完整的源代码.但是该存储过程的名称已丢失.在此数据库中,有数百个存储过程.

那么有没有办法通过使用其内容或使用内容中的任何变量来找出存储过程的名称

这让我很困惑.自从受到赞赏以来,我们将给予帮助.

Mel*_*nie 26

试试这个:

select * from sysobjects where id in 
(select id from syscomments where text like '%exec%')
order by [name]
Run Code Online (Sandbox Code Playgroud)

其中'exec'是您要搜索的文本.此查询也将搜索视图,只是fyi


SWe*_*eko 6

如果存储过程的文本未加密,则Sql Server会在syscomments表中保留过程的全文,其中包含id引用sysobjects表的字段,其中存储实际名称.

因此,从存储过程中找到一些代表性的行,这不太可能在另一个地方,并且:

select o.name, c.text 
from syscomments c
   inner join sysobjects o on o.id = c.id
where c.text like '%<representative_line>%'
  and o.type='P' -- this means filter procedures only
Run Code Online (Sandbox Code Playgroud)

这应该只返回一些您可以手动检查的程序.