按名称查找存储过程

有什么办法可以在SQL Server Management Studio存储过程中按名称或部分名称find? (在活动数据库上下文中)

感谢帮助

5 Solutions collect form web for “按名称查找存储过程”

您可以使用:

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%' 

假设您在“对象浏览器详细信息”( F7 )中显示“存储过程”列表,请单击“filter”button并input名称(或部分名称)。

替代文字

这将适用于表格和视图(除其他外),而不仅仅是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 

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

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

search模式

你可以使用这个查询:

 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') 

正如你所看到的,你也可以在存储过程的内部进行search。

  • 使用SQL Server Server Management Studio导入/导出数据库
  • 如何删除SQL Server数据库中的所有表?
  • 如何在debugging时在T-SQL中查看表variables的值?
  • 如何在SQL Management Studio中指定不同的端口号?
  • 如何使用SQL Server Management Studio生成脚本来重新创build表?
  • SQL服务器无效的对象名称 - 但表列出在SSMS表列表中
  • 将select结果转换为插入脚本
  • 将varchar()列限制为特定值?
  • 是否有任何方法来查看查询编辑器中的SQL Server Management Studio Express 2005的空白?
  • SQL Server Management Studio 2012在哪里?
  • SQL查询,如果值为null,则返回1