我需要获取 Azure Synapse Serverless SQL 中所有表的行计数。我不能使用存储过程,也不能使用DMV。我有一个查询创建所有完全限定表名的列表以供分析,但我在实际执行查询的下一步中遇到了困难。我认为我无法直接在 SQL Server 中执行此操作,因为我无法运行动态 SQL。
我理想的解决方案是 Power Query 中的一些东西。同样,我设置了一个包含所有名称的列表(和参数)。我只需要某种方法让它从 [TableName] 为每个执行 SELECT Count(*) -- 请帮助我!
我已经对 Dynamic M 查询进行了研究,但我一定遗漏了一些东西。
更多注意事项:这需要是直接查询,仅限原生查询。
我已经尝试了几乎所有可以在 Stack Overflow 或 Synapse 文档中找到的 SQL 方法,但我需要有关强力查询的帮助。 动态 SQL XXX 存储过程XXX 动态管理视图 XXX
这是一种方法(未经测试),您可以将其作为列表中所有表的一个 SQL 来执行。然后您可以将此查询的结果用于您的 SQL 语句。
let
Source = Table.SelectColumns(SQLTable,{"TableName"}),
#"Added Custom" = Table.AddColumn(Source, "Custom", each "(SELECT COUNT(*) FROM " & [TableName] & ") AS " & [TableName]),
#"SQL command" = "SELECT " & Text.Combine(#"Added Custom"[Custom], ", ")
in
#"SQL command"