我是否可以通过名称或部分名称在SQL Server Management Studio存储过程中找到任何方法? (在活动数据库上下文中)
感谢您的帮助
答案 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 )中,请单击“过滤器”按钮并输入名称(或部分名称)。
答案 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注入,在搜索框中的对象浏览器中只使用你的百分比字符,这将搜索一切存储过程,函数,视图,表格,模式,索引...我厌倦了想更多:)
答案 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)