【问题标题】:Determining the dependencies of a stored procedure.确定存储过程的依赖关系。
【发布时间】:2012-11-29 17:17:41
【问题描述】:

有没有办法(或者,理想情况下,查询)来确定存储过程访问的所有表,包括由它自己调用的其他存储过程访问的那些表(以及它们调用的那些,等等)在调用堆栈中)。

如果有人可以编造这样的查询,是否还可以确定是否访问表以进行更新、选择或删除?

是否可以确定相同的视图被放入混合中?

我的存储过程不包含任何动态构造的调用,因此至少稍微简化了它。

【问题讨论】:

标签: sql-server tsql stored-procedures dependencies proc


【解决方案1】:

试试这个链接:

how-to-find-all-dependencies-of-a-table-in-sql-server

或者这个来搜索文本:

DECLARE @Search varchar(255)
SET @Search='cost_centre'
SELECT DISTINCT
    o.name AS Object_Name,o.type_desc
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%'+@Search+'%'
    ORDER BY 2,1

【讨论】:

    【解决方案2】:

    目前我无法访问 sql-server,但我知道您可以检查依赖关系 - 我已经完成了这项工作,确定访问表的视图。

    看看sys.all_objectssysdepends。您可以通过object_iddepid 加入他们。包括sysdependstype-column,您应该能够获取由SP 访问的表。

    明天会看看,如果仍然有必要 - 但你应该能够检查上述信息来获取你的信息!

    @edit:刚刚看到Aaron的评论。一切都在那里解释。也许在我的情况下获得正确的依赖关系是幸运的;)

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2011-06-14
      相关资源
      最近更新 更多