How do I find a stored procedure containing ?

后端 未结 20 2114
梦谈多话
梦谈多话 2020-11-28 17:21

I need to search a SQL server 2008 for stored procedures containing where maybe the name of a database field or variable name.

20条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-11-28 17:35

    I took Kashif's answer and union'd all of them together. Strangely, sometimes, I found results in one of the selects but not the other. So to be safe, I run all 3 when I'm looking for something. Hope this helps:

    DECLARE @SearchText varchar(1000) = 'mytext';
    
    SELECT DISTINCT SPName 
    FROM (
        (SELECT ROUTINE_NAME SPName
            FROM INFORMATION_SCHEMA.ROUTINES 
            WHERE ROUTINE_DEFINITION LIKE '%' + @SearchText + '%' 
            AND ROUTINE_TYPE='PROCEDURE')
        UNION ALL
        (SELECT OBJECT_NAME(id) SPName
            FROM SYSCOMMENTS 
            WHERE [text] LIKE '%' + @SearchText + '%' 
            AND OBJECTPROPERTY(id, 'IsProcedure') = 1 
            GROUP BY OBJECT_NAME(id))
        UNION ALL
        (SELECT OBJECT_NAME(object_id) SPName
            FROM sys.sql_modules
            WHERE OBJECTPROPERTY(object_id, 'IsProcedure') = 1
            AND definition LIKE '%' + @SearchText + '%')
    ) AS T
    ORDER BY T.SPName
    

提交回复
热议问题