我喜欢从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脚本来处理它们?
答案 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来完成此操作。