Azure数据仓库中

时间:2017-11-16 11:11:34

标签: azure azure-sql-database parallel-data-warehouse

我需要获取存储过程中使用的表列表,但是在Azure Datawarehouse中不支持sp_depends。

我想到的另一个选择是从INFORMATION_SCHEMA.ROUTINES获取存储的proc代码,然后运行脚本从存储过程定义中获取[schema]。[tablename]但这里的问题在于存储整个将proc存储到变量中。 VARCHAR(MAX)存储限制为8000,如果我的proc超过此限制,那么我将无法获得完整的表列表。

1 个答案:

答案 0 :(得分:0)

尝试使用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