这是针对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列中搜索表名。
答案 0 :(得分:0)
我进行了深入研究,发现根据Microsoft文档“ sys.sql_expression_dependencies”应该包含存储过程的依赖项信息。
我在MSDN论坛上发布了相同的问题,以查看是否缺少Azure数据仓库中的任何设置。主持人与产品团队联系并确认,此时“ sys.sql_expression_dependencies”仅包含视图的依赖项。他们将尽快更新文档。
希望这对正在寻找存储过程和表链接的人很有帮助。