有没有办法可以使用DMV或XMLA动态发现我的多维数据集中是否已存在具有特定名称的分区?
由于
答案 0 :(得分:4)
如果您想要通过MDX查询的DMV,可以使用$System.DISCOVER_OBJECT_ACTIVITY
架构,然后根据OBJECT_PARENT_PATH
对其进行过滤,类似于:
SELECT OBJECT_ID
FROM $System.DISCOVER_OBJECT_ACTIVITY
[Server].Databases.[DatabaseID].Cubes.[CubeID].Measure Groups.[MeasureID].Partitions
答案 1 :(得分:3)
没有DMV列出此信息。您必须发出DISCOVER_XML_METADATA请求并通过返回的XMLA进行解析,该XMLA的格式与脚本对象定义时的格式类似。
如果您不介意使用外部程序集,http://asstoredprocedures.codeplex.com的程序集中有一个名为DiscoverXmlMetadata的函数可以执行此操作。
以下查询将返回数据库中所有分区的列表
调用assp.DiscoverXmlMetadata(“Partition”)