Альтернатива sp_depends в хранилище данных Azure

Мне нужно получить список таблиц, используемых в хранимой процедуре, однако в Azure Datawarehouse sp_depends не поддерживается.

Другая альтернатива, о которой я думал, это получить хранимый код процедуры из INFORMATION_SCHEMA.ROUTINES, а затем запустить скрипт, чтобы получить [schema].[Tablename] из определения хранимой процедуры, но здесь проблема заключается в сохранении всего хранимого процесса в Переменная. VARCHAR(MAX) имеет ограничение в 8000 для хранения, и если моя процедура превысит этот предел, я не смогу получить полный список таблиц.

1 ответ

Попробуйте использовать sys.sql_expression_dependencies. Следующий запрос может помочь вам:

SELECT ReferencingObjectType = o1.type,
       ReferencingObject = SCHEMA_NAME(o1.schema_id)+'.'+o1.name,
       ReferencedObject = SCHEMA_NAME(o2.schema_id)+'.'+ed.referenced_entity_name,
       ReferencedObjectType = o2.type 
FROM   sys.sql_expression_dependencies ed 
       INNER JOIN  sys.objects o1 
         ON ed.referencing_id = o1.object_id 
       INNER JOIN sys.objects o2
         ON ed.referenced_id = o2.object_id
WHERE o1.type in ('P','TR','V', 'TF')
ORDER BY ReferencingObjectType, ReferencingObject
Другие вопросы по тегам