按名称查找存储过程

时间:2010-08-26 10:32:31

标签: sql database sql-server-2005 ssms

我是否可以通过名称或部分名称在SQL Server Management Studio存储过程中找到任何方法? (在活动数据库上下文中)

感谢您的帮助

8 个答案:

答案 0 :(得分:111)

您可以使用:

select * 
from 
   sys.procedures 
where 
   name like '%name_of_proc%'

如果您需要可以在syscomments表中查找的代码

select text 
from 
    syscomments c
    inner join sys.procedures p on p.object_id = c.object_id
where 
    p.name like '%name_of_proc%'

修改更新:

你也可以使用ansi标准版

SELECT * 
FROM 
    INFORMATION_SCHEMA.ROUTINES 
WHERE 
    ROUTINE_NAME LIKE '%name_of_proc%'

答案 1 :(得分:39)

假设您处于显示存储过程列表的对象资源管理器详细信息( F7 )中,请单击“过滤器”按钮并输入名称(或部分名称)。

alt text

答案 2 :(得分:5)

这也适用于表和视图(以及其他内容),而不仅仅是sprocs:

SELECT
    '[' + s.name + '].[' + o.Name + ']',
    o.type_desc
FROM
    sys.objects o
    JOIN sys.schemas s ON s.schema_id = o.schema_id
WHERE
    o.name = 'CreateAllTheThings' -- if you are certain of the exact name
    OR o.name LIKE '%CreateAllThe%' -- if you are not so certain

它还为您提供了模式名称,该名称在任何非平凡的数据库中都很有用(例如,您需要查询以按名称查找存储过程的数据库)。

答案 3 :(得分:1)

您可以使用此查询:

SELECT 
    ROUTINE_CATALOG AS DatabaseName ,
    ROUTINE_SCHEMA AS SchemaName,
    SPECIFIC_NAME AS SPName ,
    ROUTINE_DEFINITION AS SPBody ,
    CREATED AS CreatedDate,
    LAST_ALTERED AS LastModificationDate
FROM INFORMATION_SCHEMA.ROUTINES
WHERE 
    (ROUTINE_DEFINITION LIKE '%%')
    AND 
    (ROUTINE_TYPE='PROCEDURE')
    AND
    (SPECIFIC_NAME LIKE '%AssessmentToolDegreeDel')

如您所见,您也可以在存储过程体内进行搜索。

答案 4 :(得分:0)

非常巧妙的技巧我偶然尝试了一些SQL注入,在搜索框中的对象浏览器中只使用你的百分比字符,这将搜索一切存储过程,函数,视图,表格,模式,索引...我厌倦了想更多:)

Search Pattern

答案 5 :(得分:0)

当我有商店程序名称,并且不知道它属于哪个数据库时,我使用以下内容 -

Subject  Verb     Object     ID         Date
trump     got     jobs        820108    20170803
voters    begin   to          182912    20170803
steve     miss    colleague   980828    20170804

答案 6 :(得分:0)

对于SQL Server 9.0(2005)版本,可以使用以下代码:

select * 
from 
syscomments c
inner join sys.procedures p on p.object_id = c.id
where 
p.name like '%usp_ConnectionsCount%';

答案 7 :(得分:0)

选项1:在SSMS中,转到View > Object Explorer Details或按F7。使用Search框。最后,在显示的列表中,右键单击并选择SynchronizeObject Explorer树中找到对象。

Object Explorer Details

选项2:安装类似dbForge Search的加载项。右键单击显示的列表,然后选择Find in Object Explorer

enter image description here