Почему в sys.sql_expression_dependencies нет ссылок на хранимые процедуры в хранилище данных Azure?

Это для хранилища данных Azure.

Я пытаюсь создать отчет в Power BI, который отображает таблицы, используемые в хранимых процедурах. Я могу сделать что-то подобное для представлений, но не могу сделать то же самое для сохраненных процессов. В таблице sys.sql_expression_dependencies есть запись для ссылки на представления, но нет ссылки на сохраненные процедуры. Ниже я использую запрос, который дает нулевые записи.

   SELECT   sproc.referencing_id as sproc_id
            ,o.name AS sproc_name
            ,referenced_entity_name AS table_name 
            ,type_desc
    FROM    sys.sql_expression_dependencies sproc
    LEFT JOIN sys.objects o WITH (NOLOCK) 
        ON sproc.referencing_id = o.object_id 
    WHERE type_desc like '%Procedure%'

Мои вопросы

  • Почему в системной таблице нет записей для хранимых процедур, но есть справочные записи для представлений? Есть ли триггер или что-то отключенное?

  • Каким-либо другим способом получить список таблиц, используемых в хранимых процедурах, которые я могу отобразить в Power BI?

Я пытаюсь избежать поиска имен таблиц в столбце sys.sql_modules.definition.


person skadam85    schedule 06.06.2019    source источник


Ответы (1)


Я исследовал со своей стороны и обнаружил, что согласно документации Microsoft "sys.sql_expression_dependencies" должен содержать информацию о зависимостях для хранимых процедур.

https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-expression-dependencies-transact-sql?view=sql-server-2017.

Я разместил тот же вопрос на форуме MSDN, чтобы узнать, не хватает ли мне каких-либо настроек в хранилище данных Azure. Модератор проконсультировался с командой разработчиков продукта и подтвердил, что на данный момент "sys.sql_expression_dependencies" содержит только зависимости для представлений. В ближайшее время они собираются обновить документацию.

https://social.msdn.microsoft.com/Forums/en-US/84493a3b-fc2c-4009-82f5-2e7cc56c3eed/why-does-8220syssqlexpressiondependencies8221-doesnamp39t-have-any-reference-for-stored?forum=AzureSQLDataWarehouse

Надеюсь, это будет полезно для всех, кто ищет связывание хранимых процедур и таблиц.

person skadam85    schedule 11.06.2019