如何在MDXQuery中关联两个$SYSTEM.TMSCHEMA_系列系统表?
正确关联SSAS DMV $SYSTEM.TMSCHEMA_PARTITIONS与$SYSTEM.TMSCHEMA_TABLES的方法
作为SQL开发人员,你遇到的问题核心是SSAS动态管理视图(DMV)的执行环境和语法细节差异,以下是可行的关联方案:
优先使用SQL查询窗口执行
在SSMS连接SSAS实例后,切换到SQL查询窗口(而非MDX查询窗口),DMV对标准SQL JOIN语法的支持在这里更完善。标准关联查询语句
你的关联条件a.TableID = b.ID是正确的,完整可执行的SQL语句如下:SELECT p.Name AS PartitionName, p.TableID, t.Name AS TableName, t.ID AS TableUniqueID FROM $SYSTEM.TMSCHEMA_PARTITIONS p INNER JOIN $SYSTEM.TMSCHEMA_TABLES t ON p.TableID = t.IDMDX窗口下的替代方案
若必须在MDX查询窗口操作,可通过交叉连接加过滤条件实现关联(MDX窗口不直接支持SQL风格的JOIN关键字):SELECT [PartitionName] = p.[Name], [TableID] = p.[TableID], [TableName] = t.[Name] FROM $SYSTEM.TMSCHEMA_PARTITIONS AS p, $SYSTEM.TMSCHEMA_TABLES AS t WHERE p.TableID = t.ID常见报错排查点
- 误选MDX查询窗口:直接在MDX窗口写SQL JOIN会触发语法错误,必须切换到SQL窗口。
- 视图名称拼写错误:确认
$SYSTEM.TMSCHEMA_PARTITIONS和$SYSTEM.TMSCHEMA_TABLES的拼写完全正确。
内容的提问来源于stack exchange,提问作者Josh Sama
相关产品推荐
相关产品推荐

