Pre*_*gha 127
您可以使用:
select *
from
sys.procedures
where
name like '%name_of_proc%'
Run Code Online (Sandbox Code Playgroud)
如果您需要代码,可以查看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%'
Run Code Online (Sandbox Code Playgroud)
编辑更新:
你也可以使用ansi标准版
SELECT *
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_NAME LIKE '%name_of_proc%'
Run Code Online (Sandbox Code Playgroud)
Cod*_*uth 42
假设您在F7显示存储过程列表的对象资源管理器详细信息()中,请单击"过滤器"按钮并输入名称(或部分名称).

这也适用于表和视图(以及其他内容),而不仅仅是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
Run Code Online (Sandbox Code Playgroud)
它还为您提供了模式名称,该名称在任何非平凡的数据库中都很有用(例如,您需要查询以按名称查找存储过程的数据库).
小智 5
当我有一个存储过程名称,并且不知道它属于哪个数据库时,我使用以下命令 -
Use [master]
GO
DECLARE @dbname VARCHAR(50)
DECLARE @statement NVARCHAR(max)
DECLARE db_cursor CURSOR
LOCAL FAST_FORWARD
FOR
--Status 48 (mirrored db)
SELECT name FROM MASTER.dbo.sysdatabases WHERE STATUS NOT LIKE 48 AND name NOT IN ('master','model','msdb','tempdb','distribution')
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbname
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @statement = 'SELECT * FROM ['+@dbname+'].INFORMATION_SCHEMA.ROUTINES WHERE [ROUTINE_NAME] LIKE ''%name_of_proc%'''+';'
print @statement
EXEC sp_executesql @statement
FETCH NEXT FROM db_cursor INTO @dbname
END
CLOSE db_cursor
DEALLOCATE db_cursor
Run Code Online (Sandbox Code Playgroud)
选项 1:在 SSMS 中,转至View > Object Explorer Details(或按F7)。在框中输入内容Search并点击Enter。最后在显示的列表中,右键单击并选择Synchronize以在树中查找对象Object Explorer。
选项 2:安装附加组件,例如dbForge Search. 然后右键单击显示的列表并选择Find in Object Explorer。