为什么“ sys.sql_expression_dependencies”对Azure数据仓库中的存储过程没有任何引用?

时间:2019-06-06 01:39:28

标签: sql-server azure tsql powerbi azure-sqldw

这是针对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列中搜索表名。

1 个答案:

答案 0 :(得分:0)

我进行了深入研究,发现根据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

希望这对正在寻找存储过程和表链接的人很有帮助。