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 に答える