有没有一种方法可以使用 DMV 或 XMLA 动态发现具有特定名称的分区是否已存在于我的多维数据集中?
谢谢
如果您想要一个可以通过 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
没有列出此信息的 DMV。您必须发出 DISCOVER_XML_METADATA 请求并解析返回的 XMLA,该 XMLA 的格式与您编写对象定义脚本时得到的格式相似。
如果您不介意使用外部程序集,那么在http://asstoredprocedures.codeplex.com的程序集中有一个名为 DiscoverXmlMetadata 的函数可以执行此操作。
以下查询将返回数据库中所有分区的列表
调用 assp.DiscoverXmlMetadata("Partition")