Propiedades de miembro MDX: propiedades de miembro intrínsecas
Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services expone propiedades intrínsecas en miembros de dimensión que puede incluir en una consulta para devolver datos o metadatos adicionales para su uso en una aplicación personalizada, o para ayudar en la investigación o construcción del modelo. Si utiliza las herramientas de cliente de SQL Server, puede ver las propiedades intrínsecas en SQL Server Management Studio (SSMS).
Las propiedades intrínsecas son ID, KEY, KEYxy NAME, que son las propiedades que exponen todos los miembros de cualquier nivel. También puede devolver información de posición, como LEVEL_NUMBER o PARENT_UNIQUE_NAME, entre otros.
Dependiendo de cómo se crea la consulta, y de la aplicación cliente que se utiliza para ejecutar las consultas, las propiedades de miembro pueden o no estar visibles en el conjunto de resultados. Si utiliza SQL Server Management Studio para probar o ejecutar consultas, puede hacer doble clic en un miembro del conjunto de resultados para abrir el cuadro de diálogo Propiedades del miembro, que muestra los valores de cada propiedad de miembro intrínseca.
Para obtener una introducción sobre el modo de utilizar y ver las propiedades de miembro de dimensión, vea Visualización de las propiedades de miembro de SSAS en una ventana de consulta MDX en SSMS.
Nota:
Como proveedor compatible con la sección OLAP de la especificación OLE DB de marzo de 1999 (2.6), Microsoft SQL Server SQL Server Analysis Services admite las propiedades de miembro intrínsecas enumeradas en este tema.
Los proveedores distintos de SQL ServerSQL Server Analysis Services pueden admitir propiedades de miembro intrínsecas adicionales. Para obtener más información acerca de las propiedades de miembro intrínsecas compatibles con otros proveedores, vea la documentación que suministra cada uno de ellos.
Tipos de propiedades de miembro
Las propiedades de miembro intrínsecas admitidas por SQL Server SQL Server Analysis Services son de dos tipos:
Propiedades de miembro contextuales
Estas propiedades de miembro deben utilizarse en el contexto de una jerarquía o un nivel específicos y proporcionan valores para cada miembro de la dimensión o el nivel especificado.
Observe cómo se incluye en el ejemplo siguiente la ruta de acceso de la propiedad KEY : MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
.
Propiedades de miembro no contextuales
Estas propiedades de miembro no pueden utilizarse en el contexto de una dimensión o un nivel específicos y devuelven los valores para todos los miembros de un eje.
Las propiedades no contextuales son independientes y no incluyen información de ruta de acceso. Observe cómo no hay ninguna dimensión o nivel especificado para PARENT_UNIQUE_NAME en el ejemplo siguiente: DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
Independientemente de si la propiedad de miembro intrínseca es contextual o no, se rige por las siguientes reglas:
Únicamente se pueden especificar las propiedades de miembro intrínsecas relacionadas con los miembros de dimensión que se proyectan en el eje.
Se pueden mezclar solicitudes de propiedades de miembro contextuales con propiedades de miembro intrínsecas no contextuales en la misma consulta.
Se puede utilizar la palabra clave PROPERTIES para realizar consultas sobre las propiedades.
En las secciones siguientes se describen las distintas propiedades de miembro intrínsecas sensibles al contexto y no contextuales disponibles en SQL Server SQL Server Analysis Services y cómo usar la palabra clave PROPERTIES con cada tipo de propiedad.
Propiedades de miembro contextuales
Todos los miembros de dimensión y de nivel admiten una lista de propiedades de miembro intrínsecas contextuales. En la siguiente tabla se incluyen estas propiedades contextuales.
Propiedad | Descripción |
---|---|
Id | Id. interno del miembro. |
Clave | Valor de la clave de miembro en el tipo de datos original. MEMBER_KEY se incluye por cuestiones de compatibilidad con versiones anteriores. La propiedad MEMBER_KEY tiene el mismo valor que KEY0 para las claves no compuestas y es NULL para las claves compuestas. |
KEYx | Clave del miembro, donde x es el valor ordinal (con base cero) de la clave. KEY0 está disponible para las claves compuestas y no compuestas, pero se usa principalmente para las claves compuestas. Para las claves compuestas, el conjunto KEY0, KEY1, KEY2, etc. forma la clave compuesta. Puede utilizar cualquiera de ellas por separado en una consulta para devolver esa parte de la clave compuesta. Por ejemplo, si se especifica KEY0, se devuelve la primera parte de la clave compuesta, si se especifica KEY1, se devuelve la parte siguiente de la clave compuesta, y así sucesivamente. Si la clave no es compuesta, KEY0 equivale a Key. Tenga en cuenta que KEYx se puede utilizar tanto con contexto como sin contexto. Por esta razón, aparece en las dos listas. Para obtener un ejemplo de cómo utilizar esta propiedad de miembro, vea Una sencilla curiosidad de MDX: Key0, Key1, Key2. |
Nombre | Nombre del miembro. |
Sintaxis de PROPERTIES para las propiedades contextuales
Estas propiedades de miembro se utilizan en el contexto de una dimensión o un nivel específicos y proporcionan valores de cada miembro de la dimensión o el nivel especificados.
En el caso de las propiedades de miembro de dimensión, el nombre de la propiedad debe ir precedido del nombre de la dimensión a la que se aplica la propiedad. En el siguiente ejemplo se muestra la sintaxis adecuada:
DIMENSION PROPERTIES Dimension.Property_name
En el caso de las propiedades de miembro de nivel, el nombre de la propiedad puede ir precedido solamente del nombre de nivel o, si se requieren especificaciones adicionales, del nombre de la dimensión y del nivel. En el siguiente ejemplo se muestra la sintaxis adecuada:
DIMENSION PROPERTIES [Dimension.]Level.Property_name
Para ilustrar lo explicado, suponga que desea devolver todos los nombres de cada uno de los miembros a los que se hace referencia en la dimensión [Sales]
. Para devolver estos nombres, es preciso utilizar la siguiente instrucción en una consulta de expresiones multidimensionales (MDX):
DIMENSION PROPERTIES [Sales].Name
Propiedades de miembro no contextuales
Todos los miembros admiten una lista de propiedades de miembro intrínsecas idénticas independientemente del contexto. Estas propiedades proporcionan información adicional que pueden usar las aplicaciones para mejorar la experiencia del usuario.
En la tabla siguiente se enumeran las propiedades intrínsecas no contextuales compatibles con SQL Server SQL Server Analysis Services.
Nota:
Las columnas del conjunto de filas del esquema MEMBERS admiten las propiedades de miembro intrínsecas incluidas en la siguiente tabla. Para obtener más información sobre el conjunto de filas de esquema MEMBERS , vea MDSCHEMA_MEMBERS conjunto de filas.
Propiedad | Descripción |
---|---|
CATALOG_NAME | Nombre del cubo al que pertenece este miembro. |
CHILDREN_CARDINALITY | Número de elementos secundarios que tiene este miembro. Puede ser una estimación; por tanto, no debe pensar que este valor es el recuento exacto. Los proveedores deben devolver la mejor estimación posible. |
CUSTOM_ROLLUP | Expresión de miembro personalizado. |
CUSTOM_ROLLUP_PROPERTIES | Propiedades de miembro personalizado. |
DESCRIPCIÓN | Descripción legible del miembro. |
DIMENSION_UNIQUE_NAME | Nombre único de la dimensión a la que pertenece este miembro. Los proveedores que generan nombres únicos por calificación tienen delimitados todos los componentes del nombre. |
HIERARCHY_UNIQUE_NAME | Nombre único de la jerarquía. Si el miembro pertenece a más de una jerarquía, se incluye una fila por cada jerarquía a la que pertenece el miembro. Los proveedores que generan nombres únicos por calificación tienen delimitados todos los componentes del nombre. |
IS_DATAMEMBER | Valor booleano que indica si el miembro es un miembro de datos. |
IS_PLACEHOLDERMEMBER | Valor booleano que indica si el miembro es un marcador de posición. |
KEYx | Clave del miembro, donde x es el valor ordinal (con base cero) de la clave. KEY0 está disponible para claves compuestas y no compuestas. Si la clave no es compuesta, KEY0 equivale a Key. Para las claves compuestas, el conjunto KEY0, KEY1, KEY2, etc. forma la clave compuesta. Puede hacer referencia a cualquiera de ellas por separado en una consulta para devolver esa parte de la clave compuesta. Por ejemplo, si se especifica KEY0, se devuelve la primera parte de la clave compuesta, si se especifica KEY1, se devuelve la parte siguiente de la clave compuesta, y así sucesivamente. Tenga en cuenta que KEYx se puede utilizar tanto con contexto como sin contexto. Por esta razón, aparece en las dos listas. Para obtener un ejemplo de cómo utilizar esta propiedad de miembro, vea Una sencilla curiosidad de MDX: Key0, Key1, Key2. |
LCIDx | Traducción del título de miembro al valor hexadecimal del id. de configuración regional, donde x es el valor decimal del id. de configuración regional (por ejemplo, LCID1009 como inglés de Canadá). Disponible únicamente si la traducción tiene una columna de descripción enlazada al origen de datos. |
LEVEL_NUMBER | Distancia al miembro desde la raíz de la jerarquía. El nivel raíz es cero. |
LEVEL_UNIQUE_NAME | Nombre único del nivel al que pertenece el miembro. Los proveedores que generan nombres únicos por calificación tienen delimitados todos los componentes del nombre. |
MEMBER_CAPTION | Etiqueta o descripción asociada al miembro. El título se utiliza principalmente para la visualización. Si no existe ningún título, la consulta devuelve MEMBER_NAME. |
MEMBER_KEY | Valor de la clave de miembro en el tipo de datos original. MEMBER_KEY se incluye por cuestiones de compatibilidad con versiones anteriores. La propiedad MEMBER_KEY tiene el mismo valor que KEY0 para las claves no compuestas y es NULL para las claves compuestas. |
MEMBER_NAME | Nombre del miembro. |
MEMBER_TYPE | Tipo del miembro. Esta propiedad admite cualquiera de los siguientes valores: MDMEMBER_TYPE_REGULAR MDMEMBER_TYPE_ALL MDMEMBER_TYPE_FORMULA MDMEMBER_TYPE_MEASURE MDMEMBER_TYPE_UNKNOWN Nota: MDMEMBER_TYPE_FORMULA tiene precedencia sobre MDMEMBER_TYPE_MEASURE. Por lo tanto, si hay un miembro (calculado) de fórmula en la dimensión de medidas, la propiedad MEMBER_TYPE del miembro calculado será MDMEMBER_TYPE_FORMULA. |
MEMBER_UNIQUE_NAME | Nombre único del miembro. Los proveedores que generan nombres únicos por calificación tienen delimitados todos los componentes del nombre. |
MEMBER_VALUE | Valor del miembro en el tipo de datos original. |
PARENT_COUNT | Número de primarios que tiene este miembro. |
PARENT_LEVEL | Distancia al primario del miembro desde el nivel raíz de la jerarquía. El nivel raíz es cero. |
PARENT_UNIQUE_NAME | Nombre único del elemento primario del miembro. Se devuelveNULL para todos los miembros del nivel raíz. Los proveedores que generan nombres únicos por calificación tienen delimitados todos los componentes del nombre. |
SKIPPED_LEVELS | El número de niveles omitidos para el miembro. |
UNARY_OPERATOR | Operador unario del miembro. |
UNIQUE_NAME | El nombre completo del miembro, con este formato: [dimensión].[nivel].[key6.] |
Sintaxis de PROPERTIES para las propiedades no contextuales
Use la sintaxis siguiente para especificar una propiedad de miembro intrínseca no contextual con la palabra clave PROPERTIES :
DIMENSION PROPERTIES Property
Tenga en cuenta que esta sintaxis no permite calificar la propiedad con una dimensión o un nivel. La propiedad no puede calificarse porque las propiedades de miembro intrínsecas no contextuales se aplican a todos los miembros de un eje.
Por ejemplo, una instrucción MDX que especifique la propiedad de miembro intrínseca DESCRIPTION debería tener la siguiente sintaxis:
DIMENSION PROPERTIES DESCRIPTION
Esta instrucción devuelve la descripción de cada miembro de la dimensión del eje. Si intentó calificar la propiedad con una dimensión o un nivel, como en Dimensión.DESCRIPTION
o Nivel.DESCRIPTION
, la instrucción no se validaría.
Ejemplo
En los ejemplos siguientes se muestran consultas MDX que devuelven propiedades intrínsecas.
Ejemplo 1: usar propiedades intrínsecas contextuales en una consulta
El ejemplo siguiente devuelve el identificador principal, la clave y el nombre de cada categoría de producto. Observe cómo las propiedades se exponen como medidas. Esto permite ver las propiedades en un conjunto de celdas al ejecutar la consulta, en lugar de usar el cuadro de diálogo Propiedades del miembro de SSMS. Puede ejecutar una consulta como esta para recuperar los metadatos de miembro de un cubo implementado previamente.
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]
Ejemplo 2: propiedades intrínsecas no contextuales
El ejemplo siguiente contiene la lista completa de propiedades intrínsecas no contextuales. Después de ejecutar la consulta en SSMS, haga clic en los distintos miembros para ver las propiedades en el cuadro de diálogo Propiedades del miembro.
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]
Ejemplo 3: devolver propiedades de miembro como datos en un conjunto de resultados
El siguiente ejemplo devuelve la descripción traducida del miembro de la categoría de producto en la dimensión Product del cubo de Adventure Works para las configuraciones regionales especificadas.
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]
Consulte también
PeriodsToDate (MDX)
Children (MDX)
Hierarchize (MDX)
Count (Set) (MDX)
Filter (MDX)
AddCalculatedMembers (MDX)
DrilldownLevel (MDX)
Properties (MDX)
PrevMember (MDX)
Usar las propiedades de miembro (MDX)
Referencia de funciones MDX (MDX)