Обнаружение имен разделов SSAS - PullRequest
2 голосов
/ 21 сентября 2011

Есть ли способ, которым я могу динамически определить, существует ли раздел с определенным именем в моем кубе, используя DMV или XMLA?

Спасибо

Ответы [ 2 ]

4 голосов
/ 20 марта 2014

Если вам нужен DMV, который вы можете запросить через MDX, вы можете использовать схему $System.DISCOVER_OBJECT_ACTIVITY, а затем отфильтровать ее на основе OBJECT_PARENT_PATH, который будет выглядеть примерно так:

SELECT OBJECT_ID
FROM $System.DISCOVER_OBJECT_ACTIVITY
[Server].Databases.[DatabaseID].Cubes.[CubeID].Measure Groups.[MeasureID].Partitions
3 голосов
/ 04 января 2012

Нет DMV, которая перечисляет эту информацию.Вам нужно будет выполнить запрос DISCOVER_XML_METADATA и проанализировать возвращенный XMLA, который будет в формате, аналогичном тому, который вы получаете при создании сценария определения объекта.

Если вы не возражаете против использования внешней сборки, естьфункция в сборке на http://asstoredprocedures.codeplex.com с именем DiscoverXmlMetadata, которая может сделать это.

Следующий запрос вернет список всех разделов в базе данных

, вызов assp.DiscoverXmlMetadata ("Partition")

...