1

我正在尝试使用sys.dm_sql_referencing_entitiesDMV 获取表列表的所有依赖项。

这个查询给了我所有表的列表:

SELECT TableName from FinalTableList;  

这个查询给出了 TableA 的依赖关系:

SELECT  referencing_entity_name
FROM sys.dm_sql_referencing_entities ('dbo.TableA', 'OBJECT') ;  

我想将上述 2 组合到一个查询或过程中,以便我可以获得以下格式的所有依赖项:

TableA  Dependency1
        Dependency2
        Dependency3
TableB  Dependency1
        Dependency2
...................

应该如何构建查询?

4

1 回答 1

4

这是您想要使用的一个很好的例子cross apply。这是一个例子:

SELECT  tablename, referencing_entity_name
FROM (select 'information_schema.columns' as tablename, 'object' as type) t cross apply
     sys.dm_sql_referencing_entities(t.tablename, t.type)

在第一个子查询(称为t)中,您可以列出所有参数对。然后,cross apply将在他们每个人上运行该功能。

于 2012-12-03T20:23:20.580 回答