如何找到视图的下游依赖项?

时间:2009-05-14 17:39:25

标签: sql-server sql-server-2005

在SQL Server 2005上,您应该能够通过右键单击对象并选择“查看依赖项”来在Manglement Studio中查找依赖项。该对话框使您可以选择“依赖于此的对象”(我正在调用的是下游)或“依赖于此的对象”(上游)。

两个方向似乎都适用于Table对象,而View对象似乎在上游方向上报告了良好的信息。但是,View的下游列表似乎只包含View本身 - 即使我知道还有其他依赖项(在本例中为另一个视图)。

有没有办法可以找到这些信息?如果我有一个关于哪个目标的线索,我很乐意编写针对系统表的查询....

1 个答案:

答案 0 :(得分:4)

尝试:

sp_depends YourViewName

如果没有结果,请删除并重新创建您的视图,然后重试。删除和重新创建可能适用于GUI但我没有尝试

这有点慢(而不是最好的查询),但试一试:

DECLARE @Search  varchar(300)
SET @Search='yourViewName'
SELECT DISTINCT
    LEFT(so.name, 120) AS Object_Name,
    "object_type"=left(
          case so.type
        when 'U' then 'Table - User'
        when 'S' then 'Table - System'
        when 'V' then 'Table - View'
        when 'TR' then 'Trigger'
        when 'P' then 'Stored Procedure'
        when 'C' then 'Constraint - Check'
        when 'D' then 'Default'
        when 'K' then 'Key - Primary'
        when 'F' then 'Key - Foreign'
        when 'L' then 'Log'
        when 'R' then 'Rule'
        when 'RF' then 'Replication Filter stp'
        else '<<UNKNOWN '''+so.type+'''>>'
    end  -- case so.type
        ,50)
    FROM syscomments sc 
        INNER JOIN sysobjects so 
            ON so.id = sc.id
    WHERE
        text Like '%'+@Search+'%'
    ORDER BY 
        2,1