SQL Server 2008 R2 DMV - sys.dm_sql_referencing_entities - использование запроса
Я пытаюсь получить все зависимости для списка таблиц, используя sys.dm_sql_referencing_entities
DMV.
Этот запрос дает мне список всех таблиц:
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
...................
Как должен быть оформлен запрос?
1 ответ
Это отличный пример того, где вы хотите использовать 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
запустит функцию на каждом из них.