为什么我不能使用“ $ System.TMSCHEMA_TABLES”选择多个列?

时间:2019-08-26 16:37:34

标签: sql sql-server ssas dax

我是SQL Server的新手,我正试图通过在DAX Studio中使用此DMV查询来获取有关SSAS解决方案中所有表的信息,并且它像一种魅力一样工作并提供所有信息。

select * from $System.TMSCHEMA_TABLES

但是当我尝试使用以下命令获取有关特定列的信息时,会出现错误。

select ID, NAME, MODIFIED_DATE from $System.TMSCHEMA_TABLES

分区部分$System.TMSCHEMA_PARTITIONS运行正常。最终,我想实现以下目标:

Select t2.Name,t1.ModifiedTime,t1.RefreshedTime 
from 
$System.TMSCHEMA_PARTITIONS t1 
Inner join
$System.TMSCHEMA_TABLES t2 ON t1.TableID = t2.ID

2 个答案:

答案 0 :(得分:2)

这些是DMV而不是SQL查询,它们实际上是用MDX编写的,因此您不能像通常在SQL查询中那样选择/联接。

此:

select  [ID], 
        [NAME],      
        [ModifiedTime]
from    $System.TMSCHEMA_TABLES

可以工作

但是,如果要在ID上加入结果,则必须找到其他解决方案。

答案 1 :(得分:0)

另一种替代方法是在具有SSAS实例的数据库实例Crete链接服务器上。 在sql上使用openrowset从SSAS的DMV查询中获取信息,并将其加载到临时表中,并在随后的联接中使用它。

参考:

https://www.sqlservercentral.com/articles/reporting-services-read-data-from-ssas-and-sql-server-in-one-dataset