【问题标题】:How to find stored procedures by name?如何按名称查找存储过程?
【发布时间】:2013-02-04 12:57:25
【问题描述】:

我只需要搜索数据库中的所有存储过程,寻找名称中包含“item”的存储过程。有什么想法吗?

我一直在修修补补,但还没有完成:

SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%'

【问题讨论】:

  • @Aaron,是的,我的意思是 Routine_Name,我没有意识到我的建议可能已经过时并且被更好的替代品取代了。大约 2 年前我已经这样做了,我认为它仍然是合适的。我将删除我的评论。
  • 见@Martin 的回答。如果你想要那些 definition 包含“item”的,使用WHERE OBJECT_DEFINITION([object_id]) LIKE '%item%';。请不要使用 syscmets,现在已经不是 2000 年了。 :-)

标签: database sql-server-2008 stored-procedures metadata


【解决方案1】:

名称中查找包含字符串“Item”的那些。

select schema_name(schema_id) as [schema], 
       name
from sys.procedures
where name like '%Item%'

【讨论】:

    【解决方案2】:

    This 也可以帮助您解决这个问题。当存在具有不同排序规则的数据库时,它也可以工作。您可以通过传递确切的过程名称或部分名称来查找过程。

    【讨论】:

      【解决方案3】:

      您可以在 Server 2008 中使用新的查询:

      use dbName
      go
      
      print object_definition(object_id('storedProcedureName'))
      

      你会得到程序的内容。

      【讨论】:

        【解决方案4】:

        对于 SQL,您只能使用 % 和 _ 通配符。如果您想要更强大的搜索,您可以使用SchemaCrawler。 SchemaCrawler 可以使用与名称匹配的正则表达式来搜索例程。您甚至可以使用正则表达式在例程定义中进行搜索。

        Sualeh Fatehi,SchemaCrawler

        【讨论】:

          猜你喜欢
          • 2011-04-04
          • 2022-01-06
          • 1970-01-01
          • 2014-09-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-15
          相关资源
          最近更新 更多