【问题标题】:Find objects that depend on a sp查找依赖于 sp 的对象
【发布时间】:2016-03-22 06:35:03
【问题描述】:

我使用 Microsoft SQL 服务器。我有一个包含数百个存储过程的数据库。要查找依赖项,我可以右键单击 SP,选择查看依赖项,然后单击 objects that depend on [name]。

我有这个查询来查找所有存储的过程

select * from INFORMATION_SCHEMA.ROUTINES where ROUTINE_TYPE = 'procedure'

如果我添加它,我会排除每个系统 SP。

and LEFT(routine_name, 3) not in ('sp_','xp_','ms_')` 

我想找到所有其他 proc/function/trigger 不依赖的 SP。
例如:我有sproc1。在右键单击 + 查看依赖项中,我在 objects that depend on [sproc1] 没有元素,这意味着没有任何东西依赖于这个 SP。

使用查询来查找一年或更长时间未更改的过程不是一种选择,因为某些操作在每个闰年执行。有没有办法编写查询来确定存储过程的名称和 schema_id only 对于 NOONE 依赖的存储过程? (有零个依赖于 [this_sp] 的对象)

【问题讨论】:

    标签: sql sql-server stored-procedures


    【解决方案1】:

    您可以在下面修改搜索对象列表:

    SELECT *
    FROM sys.objects o
    WHERE NOT EXISTS 
    (
        SELECT *
        FROM sys.sql_expression_dependencies e
        WHERE e.referenced_id = o.object_id
    )
    AND o.type IN (N'V', N'P', N'TF', N'IF', N'FN')
    

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 2011-05-26
      • 2020-04-06
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 2022-08-18
      • 2014-10-21
      • 1970-01-01
      相关资源
      最近更新 更多