在给定数据库的所有存储过程中搜索关键字?

在给定数据库的所有存储过程中搜索关键字?

问题描述:

如何对给定数据库的所有存储过程中的关键字进行全局搜索?

How to do a global search for a key word in all the Stored Proc's for a given DB?

我使用了以下内容,但无法获得所需的结果...

I used the following but I am unable to get the desired results...

SELECT name 
FROM sysobjects 
WHERE id IN 
  ( 
    SELECT id 
    FROM syscolumns 
    WHERE name = 'loadStatus' COLLATE SQL_Latin1_General_CP1_CI_AS 
  ) 

SELECT name 
FROM sysobjects 
WHERE id IN 
  ( 
    SELECT id 
    FROM syscolumns 
    WHERE name like '%loadStatus%' COLLATE SQL_Latin1_General_CP1_CI_AS
  )

问候-瓦斯

看看这个链接 - http://www.sqlservercentral.com/scripts/T-SQL+Aids/31131/ 看看是否有帮助.

Have a look at this link - http://www.sqlservercentral.com/scripts/T-SQL+Aids/31131/ and see if that helps.

链接文章中的 SP 由 Prasad Bhogadi 撰写,内容如下:

The SP in the linked article was written by Prasad Bhogadi and is as follows:

CREATE PROCEDURE SEARCHFORSTRING @SEARCHSTRING VARCHAR(100)
AS
            SELECT  DISTINCT(sysobjects.name)
                FROM 
                sysobjects,syscomments
            WHERE 
                sysobjects.id =     syscomments.id
            AND 
                sysobjects.type = 'P'
            AND 
                sysobjects.category=0
AND
        CHARINDEX(@SEARCHSTRING ,syscomments.text)>0

您可以使用它在您的数据库中创建一个 SP 或将其调整为一次性查询.

You can use this to create an SP in your database or adapt it for a one-time query.