获取DimensionId的MDX或DMX查询

时间:2017-01-04 16:37:18

标签: ssas mdx dimensions

我喜欢从SSAS数据库获取DimensionId的查询,这在使用XMLA脚本编写维度处理时是必需的: 以下查询选择DIMENSION_CAPTION,该DIMENSION_CAPTION不是应在XMLA脚本中处理维度的正确名称。我需要的是DimensionId。

SELECT DISTINCT [CATALOG_NAME] as [DATABASE],
      DIMENSION_CAPTION AS [DIMENSION]
 FROM $system.MDSchema_Dimensions
WHERE (   [CUBE_NAME] = 'myCube1'
         OR [CUBE_NAME] = 'myCube2'
      ) 
  AND DIMENSION_CAPTION <> 'Measures' 
ORDER BY DIMENSION_CAPTION

有没有办法可以选择一组多维数据集使用的所有DimensionId,以便我可以用它来创建一个XMLA脚本来处理它们?

1 个答案:

答案 0 :(得分:1)

我认为获取多维模型最方便的方法是安装ASSP并使用以下利用XmlaDiscover函数的查询:

CALL ASSP.discoverXmlMetaData("\Database\Dimensions\Dimension");

对于表格模型,最简单的方法是使用这个内置的DMV:

SELECT TABLE_ID
FROM $system.DISCOVER_STORAGE_TABLES
WHERE mid(TABLE_ID,2,1)<>'$'

不包括H $ ......和R $ ......&#34; TABLE_ID&#34;值不包括层次结构和关系等。我不认为它允许在表ID中使用$作为字符,所以我认为这是一个安全的过滤器。

或者,如果您希望获得C#中的维度列表,则可以使用AMO来完成此操作。