如何查找存储过程的使用位置

时间:2013-03-22 17:59:20

标签: search triggers sql-server-2000

使用SQL Server 2000,有没有办法在所有触发程序中全局搜索模式?

调用存储过程的地方是隐藏我的。

这是我的第一篇文章,所以要善待。

3 个答案:

答案 0 :(得分:14)

这将搜索SQL Server 2000上的触发器,过程,函数和视图(建议在较新版本上使用此方法;请参阅this blog post for a much better way):

SELECT o.name
 FROM syscomments AS c
 INNER JOIN sysobjects AS o
 ON c.id = o.id
 WHERE c.text LIKE '%procedurename%';

当然有些危险:

  1. syscomments将采取程序> 4000行并将它们分成多行。因此,大型程序可能只会在边界点上提及您的搜索字符串,而根本不会出现。这样的程序也可能会在列表中显示两次(您可以添加GROUP BY来消除它)。
  2. 小心误报。您的搜索字符串可以包含在评论中。或者,如果您有一个名为GetAuthorSubscriptions的存储过程,并且您正在寻找%GetAuthors%,它仍会显示。使用带有COLLATE子句的区分大小写的搜索可能有所帮助,但不一定能消除它。
  3. 此处提供更多信息:

    http://databases.aspfaq.com/database/how-do-i-find-a-stored-procedure-containing-text.html

    我强烈建议离开SQL Server 2000.如果没有80亿其他好处,这个任务在更现代的版本中会容易得多。

    请注意,您的存储过程可能无法从数据库中调用 - 它可能是来自应用程序的临时调用,某人的Management Studio的打开副本,甚至是作业。要搜索可以使用的作业:

    SELECT 
      job_name = j.name, 
      s.step_name
    FROM msdb.dbo.sysjobs AS j
    INNER JOIN msdb.dbo.sysjobsteps AS s
    ON j.job_id = s.job_id
    WHERE s.command LIKE '%procedurename%';
    

    还是没有打开它?在TextData LIKE '%procedurename%' ...

    上运行服务器端跟踪过滤

答案 1 :(得分:2)

使用SQL Server 2017 使用SQL Server Management Studio

在对象资源管理器中查看过程的依赖性

  • 在对象资源管理器中,连接到数据库引擎的实例,然后展开该实例
  • 实例。
  • 展开数据库,展开该过程所属的数据库,然后展开“可编程性”。
  • 展开存储过程,右键单击该过程,然后单击“查看依赖项”。
  • 查看取决于过程的对象列表。
  • 查看过程所依赖的对象列表。
  • 单击“确定”。

使用Transact-SQL
 您可以按照here

的步骤进行操作

有关更多信息,请查看原始文章,网址为
https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/view-the-dependencies-of-a-stored-procedure?view=sql-server-2017

答案 2 :(得分:0)

这是我编写的一个过程,它从系统表中获取源,并将其逐行放入表中。这样可以更容易地扫描文本并满足由于包装文本而可能在系统表中被切断的字符串。如果你每天或每小时运行一次,它会给你近乎实时的结果。

您可以扫描v $ source表以获取一个独特的过程名称列表,但是认为将整个解决方案放在此处是有用的。

如果有任何错误让我知道,因为它没有经过详尽的测试。

Description of course objectives and assignments    0.0%    68.4%   10.5%   15.8%   5.3%    0.0%    
Communication of ideas and information  0.0%    52.6%   26.3%   10.5%   10.5%   0.0%    
Expression of expectations for performance in this class    0.0%    68.4%   15.8%   10.5%   0.0%    5.3%    
Availability to assist students in or out of class  0.0%    57.9%   31.6%   10.5%   0.0%    0.0%    
Respect and concern for students    0.0%    47.4%   42.1%   10.5%   0.0%    0.0%    
Stimulation of interest in course   0.0%    47.4%   26.3%   21.1%   0.0%    5.3%    
Facilitation of learning    0.0%    52.6%   26.3%   10.5%   10.5%   0.0%    
Overall assessment of instructor    0.0%    52.6%   31.6%   10.5%   0.0%    5.3%