Свойства элементов многомерных выражений — встроенные свойства элемента

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services предоставляет встроенные свойства элементов измерения, которые можно включить в запрос для возврата дополнительных данных или метаданных для использования в пользовательском приложении, а также для помощи в исследовании или создании модели. Если используются клиентские средства SQL Server, внутренние свойства можно просматривать в среде SQL Server Management Studio (SSMS).

Внутренние свойства включают: ID, KEY, KEYxи NAME— это свойства, предоставляемые каждым элементом, на любом уровне. Среди прочего можно также получить информацию о позиции, например LEVEL_NUMBER или PARENT_UNIQUE_NAME.

В зависимости от структуры запроса и от используемого для выполнения запроса клиентского приложения свойства элементов могут быть видны или не видны в результирующем наборе. Если для проверки или выполнения запросов используется среда SQL Server Management Studio, можно дважды щелкнуть элемент в результирующем наборе, чтобы открыть диалоговое окно свойств элемента, в котором показаны значения для каждого внутреннего свойства элемента.

Основные сведения об использовании и просмотре свойств элемента измерения см. в разделе Просмотр свойств элементов служб SSAS в окне запроса MDX в SSMS.

Примечание

Как поставщик, соответствующий разделу OLAP спецификации OLE DB за март 1999 г. (2.6), Microsoft SQL Server SQL Server Analysis Services поддерживает встроенные свойства членов, перечисленные в этом разделе.

Поставщики, отличные от SQL ServerSQL Server Analysis Services, могут поддерживать дополнительные встроенные свойства элементов. Дополнительные сведения о внутренних свойствах элементов, поддерживаемых другими поставщиками, см. в документации по этим поставщикам.

Типы свойств элементов

Встроенные свойства элементов, поддерживаемые SQL Server SQL Server Analysis Services, имеют два типа:

Свойства элементов, зависящие от контекста
Эти свойства элементов должны использоваться в контексте конкретной иерархии или уровня и передавать значения для каждого элемента заданного измерения или уровня.

Обратите внимание, что в следующий пример включен путь к свойству KEY : MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY").

Свойства элементов, не зависящие от контекста
Эти свойства элементов нельзя использовать в контексте конкретного измерения или уровня, они возвращают значения для всех элементов оси.

Контекстно независимые свойства являются автономными и не содержат сведений о пути поиска включаемых файлов. Заметьте, что измерение или уровень для PARENT_UNIQUE_NAME в следующем примере не заданы: DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS

Независимо от зависимости внутреннего свойства элемента от контекста, действуют следующие правила их использования.

  • Можно указывать только те внутренние свойства элементов, которые связаны с элементами измерения, проецируемым на оси.

  • В одном запросе можно одновременно обращаться к свойствам элементов как зависящим, так и не зависящим от контекста.

  • Для обращения к свойству используется ключевое слово PROPERTIES .

В следующих разделах описываются различные контекстно-чувствительные и неконтенсные встроенные свойства элементов, доступные в SQL Server SQL Server Analysis Services, а также способы использования ключевое слово PROPERTIES с каждым типом свойств.

Свойства элементов, зависящие от контекста

Все элементы измерения и уровня поддерживают группу внутренних свойств, зависящих от контекста. Эти свойства перечислены в следующей таблице.

Свойство Описание
Идентификатор Внутренний идентификатор элемента.
Key Значение ключа элемента в исходном типе данных. Параметр MEMBER_KEY сохранен в целях обратной совместимости. Параметр MEMBER_KEY имеет то же самое значение, что и KEY0 для несоставного ключа, и имеет значение NULL для составных ключей.
KEYx Ключ для элемента, где x — это начинающийся с нуля порядковый номер ключа. Значение KEY0 доступно для составных и несоставных ключей, но в основном используется для составных ключей.

Для составных ключей KEY0, KEY1, KEY2 и т. д. совместно образуют составной ключ. Можно использовать каждый из них независимо в запросе для возврата части составного ключа. Например, если указать значение KEY0, то будет возвращена первая часть составного ключа, а при указании значения KEY1 — следующая часть составного ключа, и т. д.

Если ключ не является составным, значение KEY0 эквивалентно Key.

Обратите внимание, что KEYx может использоваться как в контексте, так и без контекста. По этой причине оно приведено в обоих списках.

Пример использования этого свойства элемента см. в статье A Simple MDX Tidbit: Key0, Key1, Key2(О простой инструкции многомерного выражения: Key0, Key1, Key2).
имя; Имя элемента.

Синтаксис ключевого слова PROPERTIES для свойств, зависящих от контекста

Данные свойства элементов используются в контексте конкретного измерения или уровня и передают значения для каждого элемента заданного измерения или уровня.

Для свойств элемента измерения перед именем свойства указывается имя измерения, к которому относится свойство. Правильный синтаксис показан в следующем примере.

DIMENSION PROPERTIES Dimension.Property_name

Имя свойства элемента уровня может быть предварено только именем уровня или (для дополнительного уточнения) как именем измерения, так и и именем уровня. Правильный синтаксис показан в следующем примере.

DIMENSION PROPERTIES [Dimension.]Level.Property_name

Необходимо вернуть список имен всех указанных элементов в измерении [Sales] . Чтобы получить список этих имен, в запрос многомерных выражений включена следующая инструкция:

DIMENSION PROPERTIES [Sales].Name

Свойства элементов, не зависящие от контекста

Все элементы поддерживают группу внутренних свойств элементов, одинаковых вне зависимости от контекста. Эти свойства несут дополнительные сведения, используемые приложениями для создания более удобной пользовательской среды.

В следующей таблице перечислены внутренние свойства, не зависящие от контекста, поддерживаемые SQL Server SQL Server Analysis Services.

Примечание

Столбцы в наборе строк схемы MEMBERS поддерживают внутренние свойства элементов, перечисленные в следующей таблице. Дополнительные сведения о наборе строк схемы MEMBERS см. в разделе MDSCHEMA_MEMBERS наборе строк.

Свойство Описание
CATALOG_NAME Имя куба, которому принадлежит элемент.
CHILDREN_CARDINALITY Количество потомков элемента. Значение этого свойства может быть приблизительным, поэтому не стоит рассчитывать на него для определения точного числа. Поставщики должны возвращать возможное наивернейшее приблизительное значение.
CUSTOM_ROLLUP Пользовательское выражение элемента.
CUSTOM_ROLLUP_PROPERTIES Пользовательские свойства элемента.
ОПИСАНИЕ Понятное описание элемента.
DIMENSION_UNIQUE_NAME Уникальное имя измерения, которому принадлежит элемент. Для поставщиков, формирующих уникальные имена путем использования квалификаторов, компоненты имени разделяются между собой.
HIERARCHY_UNIQUE_NAME Уникальное имя иерархии. Если элемент принадлежит нескольким иерархиям, свойство содержит строку для каждой из этих иерархий. Для поставщиков, формирующих уникальные имена путем использования квалификаторов, компоненты имени разделяются между собой.
IS_DATAMEMBER Логическое значение, указывающее, является ли элемент элементом данных.
IS_PLACEHOLDERMEMBER Логическое значение, указывающее, является ли элемент заполнителем.
KEYx Ключ для элемента, где x — это начинающийся с нуля порядковый номер ключа. Значение KEY0 доступно для составных и несоставных ключей.

Если ключ не является составным, значение KEY0 эквивалентно Key.

Для составных ключей KEY0, KEY1, KEY2 и т. д. совместно образуют составной ключ. Можно ссылаться на каждый из них независимо в запросе для возврата части составного ключа. Например, если указать значение KEY0, то будет возвращена первая часть составного ключа, а при указании значения KEY1 — следующая часть составного ключа, и т. д.

Обратите внимание, что KEYx может использоваться как в контексте, так и без контекста. По этой причине оно приведено в обоих списках.

Пример использования этого свойства элемента см. в статье A Simple MDX Tidbit: Key0, Key1, Key2(О простой инструкции многомерного выражения: Key0, Key1, Key2).
LCIDx Перевод заголовка элемента в шестнадцатеричное значение локали, где x — шестнадцатеричное значение локали (например, LCID1009 для канадского английского). Доступно, только если перевод имеет столбец заголовков, привязанный к источнику данных.
LEVEL_NUMBER Расстояние от элемента до корня иерархии. Корневой уровень является нулевым.
LEVEL_UNIQUE_NAME Уникальное имя уровня, которому принадлежит элемент. Для поставщиков, формирующих уникальные имена путем использования квалификаторов, компоненты имени разделяются между собой.
MEMBER_CAPTION Метка или заголовок, связанный с элементом. Заголовок используется главным образом при отображении элемента. Если заголовок отсутствует, запрос возвращает MEMBER_NAME.
MEMBER_KEY Значение ключа элемента в исходном типе данных. Параметр MEMBER_KEY сохранен в целях обратной совместимости. Параметр MEMBER_KEY имеет то же самое значение, что и KEY0 для несоставного ключа, и имеет значение NULL для составных ключей.
MEMBER_NAME Имя элемента.
MEMBER_TYPE Тип элемента. Это свойство может принимать одно из следующих значений:

MDMEMBER_TYPE_REGULAR

MDMEMBER_TYPE_ALL

MDMEMBER_TYPE_FORMULA

MDMEMBER_TYPE_MEASURE

MDMEMBER_TYPE_UNKNOWN



Примечание. Значение MDMEMBER_TYPE_FORMULA имеет больший приоритет, чем MDMEMBER_TYPE_MEASURE. Поэтому, если в измерении мер есть формула (вычисляемый элемент), то свойством MEMBER_TYPE для вычисляемого элемента будет MDMEMBER_TYPE_FORMULA.
MEMBER_UNIQUE_NAME Уникальное имя элемента. Для поставщиков, формирующих уникальные имена путем использования квалификаторов, компоненты имени разделяются между собой.
MEMBER_VALUE Значение элемента в исходном типе данных.
PARENT_COUNT Количество родительских элементов данного элемента.
PARENT_LEVEL Расстояние от родительского элемента данного элемента до корневого уровня иерархии. Корневой уровень является нулевым.
PARENT_UNIQUE_NAME Уникальное имя родителя элемента. Для любых элементов на корневом уровне возвращается значениеNULL . Для поставщиков, формирующих уникальные имена путем использования квалификаторов, компоненты имени разделяются между собой.
SKIPPED_LEVELS Количество пропущенных уровней элемента.
UNARY_OPERATOR Унарный оператор элемента.
UNIQUE_NAME Полное имя элемента в следующем формате: [dimension].[level].[key6.]

Синтаксис ключевого слова PROPERTIES для свойств, не зависящих от контекста

Для обращения к внутреннему свойству элемента, не зависящему от контекста, используется следующий синтаксис ключевого слова PROPERTIES :

DIMENSION PROPERTIES Property

Обратите внимание, что такой синтаксис не позволяет указывать для этого свойства измерение или уровень, поскольку внутреннее контекстно-независимое свойство элемента применяется ко всем элементам оси.

Например, инструкция многомерных выражений, обращающаяся к внутреннему свойству элемента DESCRIPTION , будет иметь следующий синтаксис:

DIMENSION PROPERTIES DESCRIPTION

Инструкция возвращает описание каждого элемента в оси измерения. Если вы попытались указать для свойства измерение или уровень, как в разделе Измерение.DESCRIPTION или Уровень.DESCRIPTION, инструкция не будет проверяться.

Пример

В следующих примерах показаны запросы многомерных выражений, которые возвращают внутренние свойства.

Пример 1. Использование контекстно зависимых встроенных свойств в запросе

В следующем примере возвращается родительский ID, ключ и имя для каждой категории продукта. Обратите внимание, что свойства доступны в виде мер. Это позволяет просматривать свойства в наборе ячеек при выполнении запроса, а не в диалоге свойств элемента в среде SSMS. Можно выполнить запрос наподобие этого для получения метаданных элемента из куба, который уже развернут.

WITH  
MEMBER [Measures].[Parent Member ID] AS  
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("ID")  
MEMBER [Measures].[Parent Member Key] AS  
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")  
MEMBER [Measures].[Parent Member Name] AS  
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("Name")  
SELECT  
 {[Measures].[Parent Member ID], [Measures].[Parent Member Key], [Measures].[Parent Member Name] } on COLUMNS,   
 [Product].[Product Categories].AllMembers on ROWS  
FROM [Adventure Works]  

Пример 2. Встроенные свойства, не зависящие от контекста

В следующем примере представлен полный список внутренних свойств, которые не зависят от контекста. После выполнения запроса в среде SSMS щелкните отдельные элементы для просмотра свойств в диалоговом окне свойств элементов.

SELECT [Measures].[Sales Amount Quota] on COLUMNS,  
[Employee].[Employees].members  
DIMENSION PROPERTIES  
 CATALOG_NAME ,   
 CHILDREN_CARDINALITY ,  
 CUSTOM_ROLLUP ,   
 CUSTOM_ROLLUP_PROPERTIES ,   
 DESCRIPTION ,   
 DIMENSION_UNIQUE_NAME ,   
 HIERARCHY_UNIQUE_NAME ,  
 IS_DATAMEMBER ,   
 IS_PLACEHOLDERMEMBER ,   
 KEY0 ,  
 LCID ,  
 LEVEL_NUMBER ,  
 LEVEL_UNIQUE_NAME ,  
 MEMBER_CAPTION ,   
 MEMBER_KEY ,   
 MEMBER_NAME ,   
 MEMBER_TYPE ,  
 MEMBER_UNIQUE_NAME ,   
 MEMBER_VALUE ,   
 PARENT_COUNT ,   
 PARENT_LEVEL ,   
 PARENT_UNIQUE_NAME ,  
 SKIPPED_LEVELS ,   
 UNARY_OPERATOR ,   
 UNIQUE_NAME    
 ON ROWS  
FROM [Adventure Works]  
WHERE [Employee].[Employee Department].[Department].&[Sales]  

Пример 3. Возвращение свойств элемента как данных в результирующем наборе

Следующий пример возвращает переведенный заголовок элемента категории продукта в измерении Product куба Adventure Works для указанной локали.

WITH   
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION  
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")  
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")  
SELECT   
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0  
,[Product].[Category].MEMBERS ON 1  
FROM [Adventure Works]  
  

См. также:

PeriodsToDate (многомерные выражения)
Children (многомерные выражения)
Hierarchize (многомерные выражения)
Count (набор) (многомерные выражения)
Filter (многомерные выражения)
AddCalculatedMembers (многомерные выражения)
DrilldownLevel (многомерные выражения)
Properties (многомерные выражения)
PrevMember (многомерные выражения)
Использование свойств элементов (многомерные выражения)
Справочник по функциям многомерных выражений (многомерные выражения)