Partager via


Propriétés de membre MDX - Propriétés de membre intrinsèques

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services expose des propriétés intrinsèques sur les membres de dimension que vous pouvez inclure dans une requête pour retourner des données ou des métadonnées supplémentaires à utiliser dans une application personnalisée, ou pour faciliter l’investigation ou la construction du modèle. Si vous utilisez les outils clients SQL Server, vous pouvez afficher les propriétés intrinsèques dans SQL Server Management Studio (SSMS).

Les propriétés intrinsèques incluent ID, KEY, KEYx et NAME, qui sont des propriétés exposées par chaque membre, à n’importe quel niveau. Vous pouvez également retourner des informations positionnelles, telles que LEVEL_NUMBER ou PARENT_UNIQUE_NAME, entre autres.

Selon la façon dont vous construisez la requête et sur l’application cliente que vous utilisez pour exécuter des requêtes, les propriétés de membre peuvent ou non être visibles dans le jeu de résultats. Si vous utilisez SQL Server Management Studio pour tester ou exécuter des requêtes, vous pouvez double-cliquer sur un membre dans le jeu de résultats pour ouvrir la boîte de dialogue Propriétés du membre, affichant les valeurs de chaque propriété membre intrinsèque.

Pour obtenir une présentation de l’utilisation et de l’affichage des propriétés de membre de dimension, consultez Affichage de propriétés de membre SSAS dans une fenêtre de requête MDX dans SSMS.

Remarque

En tant que fournisseur conforme à la section OLAP de la spécification OLE DB datée de mars 1999 (2.6), Microsoft SQL Server SQL Server Analysis Services prend en charge les propriétés de membre intrinsèques répertoriées dans cette rubrique.

Les fournisseurs autres que SQL ServerSQL Server Analysis Services peuvent prendre en charge des propriétés membres intrinsèques supplémentaires. Pour plus d'informations sur les propriétés de membre intrinsèques prises en charge par d'autres fournisseurs, consultez la documentation qui les accompagne.

Types de propriétés de membre

Les propriétés de membre intrinsèques prises en charge par SQL Server SQL Server Analysis Services sont de deux types :

Propriétés de membre sensibles au contexte
Ces propriétés de membre doivent être utilisées dans le contexte d'une hiérarchie ou d'un niveau spécifique ; elles fournissent les valeurs de chaque membre de la dimension ou du niveau en question.

Notez comment l’exemple suivant inclut le chemin d’accès de la propriété KEY : MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY").

Propriétés de membre non sensibles au contexte
Ces propriétés de membre ne peuvent pas être utilisées dans le contexte d’une dimension ou d’un niveau spécifique et retournent des valeurs pour tous les membres d’un axe.

Les propriétés non sensibles au contexte sont autonomes et n’incluent pas d’informations de chemin d’accès. Notez qu’il n’existe aucune dimension ou niveau spécifié pour PARENT_UNIQUE_NAME dans l’exemple suivant : DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS

Que la propriété de membre intrinsèque soit sensible au contexte ou non, les règles d'utilisation suivantes sont d'application :

  • Vous pouvez spécifier uniquement les propriétés de membre intrinsèques associées aux membres de dimension projetés sur l'axe.

  • Vous pouvez combiner dans la même requête des propriétés de membre intrinsèques sensibles au contexte et des propriétés de membre intrinsèques non sensibles au contexte.

  • Vous utilisez le mot clé PROPERTIES pour rechercher les propriétés.

Les sections suivantes décrivent les différentes propriétés de membre intrinsèques sensibles au contexte et non contextuelles disponibles dans SQL Server SQL Server Analysis Services et expliquent comment utiliser le mot clé PROPERTIES avec chaque type de propriété.

Propriétés de membre sensibles au contexte

Tous les membres de dimension ou de niveau prennent en charge une série de propriétés de membre intrinsèques sensibles au contexte. Le tableau suivant en dresse la liste.

Propriété Descriptif
Identifiant Identificateur géré en interne pour le membre.
Clé Valeur de la clé du membre dans le type de données d'origine. MEMBER_KEY est fournie à des fins de compatibilité descendante. MEMBER_KEY a la même valeur que KEY0 pour les clés non composites et la propriété MEMBER_KEY est Null pour les clés composites.
KEYx Clé du membre, où x est la valeur ordinale de base zéro de la clé. KEY0 est disponible pour les clés composites et non composites, mais utilisé principalement pour les clés composites.

Pour les clés composites, KEY0, KEY1, KEY2, etc., forment collectivement la clé composite. Vous pouvez utiliser chacune indépendamment dans une requête pour retourner la partie en question de la clé composite. Par exemple, la spécification de KEY0 retourne la première partie de la clé composite, la spécification de KEY1 retourne la partie suivante de la clé composite, et ainsi de suite.

Si la clé n’est pas composite, KEY0 équivaut à Key.

Notez que KEYx peut être utilisé dans le contexte et sans contexte. Pour cette raison, il apparaît dans les deux listes.
Nom Nom du membre.

Syntaxe PROPERTIES pour les propriétés sensibles au contexte

Vous utilisez ces propriétés de membre dans le contexte d’une dimension ou d’un niveau spécifique, et fournissez les valeurs de chaque membre de la dimension ou du niveau en question.

Pour les propriétés de membre de dimension, vous devez faire précéder le nom de la propriété du nom de la dimension à laquelle elle s'applique. L'exemple suivant illustre la syntaxe appropriée :

DIMENSION PROPERTIES Dimension.Property_name

Pour une propriété de membre de niveau, vous pouvez faire précéder le nom de la propriété du nom du niveau uniquement, ou des noms de la dimension et du niveau pour une spécification plus détaillée. L'exemple suivant illustre la syntaxe appropriée :

DIMENSION PROPERTIES [Dimension.]Level.Property_name

Pour illustrer cela, vous pouvez retourner les noms de chaque membre référencé dans la dimension [Sales] . Pour retourner ces noms, vous devez utiliser l'instruction suivante dans une requête MDX (Multidimensional Expressions) :

DIMENSION PROPERTIES [Sales].Name

Propriétés de membre non sensibles au contexte

Tous les membres prennent également en charge une liste de propriétés de membre intrinsèques qui sont identiques quel que soit le contexte. Ces propriétés fournissent des informations supplémentaires pouvant être utilisées par des applications pour améliorer l'expérience de l'utilisateur.

Le tableau suivant répertorie les propriétés intrinsèques non sensibles au contexte prises en charge par SQL Server SQL Server Analysis Services.

Remarque

Les colonnes du jeu de lignes du schéma MEMBERS prennent en charge les propriétés de membre intrinsèques répertoriées dans le tableau suivant. Pour plus d'informations sur l'ensemble de lignes du schéma MEMBERS, consultez l'ensemble de lignes MDSCHEMA_MEMBERS.

Propriété Descriptif
CATALOG_NAME Nom du cube auquel ce membre appartient.
CHILDREN_CARDINALITY Nombre d'enfants de ce membre. Il peut s’agir d’une estimation. Vous ne devez donc pas compter sur ce nombre exact. Les fournisseurs doivent renvoyer la meilleure estimation possible.
CUSTOM_ROLLUP Expression de membre personnalisée.
CUSTOM_ROLLUP_PROPERTIES Propriétés de membre personnalisées.
DESCRIPTION Description du membre à l'intention des utilisateurs.
DIMENSION_UNIQUE_NAME Nom unique de la dimension à laquelle ce membre appartient. Pour les fournisseurs qui produisent des noms uniques par qualification, chaque composant du nom est délimité.
HIERARCHY_UNIQUE_NAME Nom unique de la hiérarchie. Si le membre appartient à plusieurs hiérarchies, il existe une ligne pour chaque hiérarchie à laquelle appartient le membre. Pour les fournisseurs qui produisent des noms uniques par qualification, chaque composant du nom est délimité.
IS_DATAMEMBER Valeur booléenne indiquant si le membre est un membre de données.
IS_PLACEHOLDERMEMBER Valeur booléenne indiquant si le membre est un espace réservé.
KEYx Clé du membre, où x est la valeur ordinale de base zéro de la clé. KEY0 est disponible pour les clés composites et non composites.

Si la clé n’est pas composite, KEY0 équivaut à Key.

Pour les clés composites, KEY0, KEY1, KEY2, etc., forment collectivement la clé composite. Vous pouvez faire référence à chacune indépendamment dans une requête pour retourner la partie en question de la clé composite. Par exemple, la spécification de KEY0 retourne la première partie de la clé composite, la spécification de KEY1 retourne la partie suivante de la clé composite, et ainsi de suite.

Notez que KEYx peut être utilisé dans le contexte et sans contexte. Pour cette raison, il apparaît dans les deux listes.
LCIDx Traduction de la légende du membre dans la valeur hexadécimale de l’ID des paramètres régionaux, où x correspond à la valeur décimale de l’ID des paramètres régionaux (par exemple, LCID1009 pour Anglais - Canada). Uniquement disponible si la colonne de légende de la traduction est liée à la source de données.
LEVEL_NUMBER Distance du membre par rapport à la racine de la hiérarchie. Le niveau de la racine est égal à zéro.
LEVEL_UNIQUE_NAME Nom unique du niveau auquel le membre appartient. Pour les fournisseurs qui produisent des noms uniques par qualification, chaque composant du nom est délimité.
MEMBER_CAPTION Étiquette ou légende associée au membre. La légende est essentiellement utilisée à des fins d'affichage. Si aucune légende n’existe, la requête retourne MEMBER_NAME.
MEMBER_KEY Valeur de la clé du membre dans le type de données d'origine. MEMBER_KEY est fournie à des fins de compatibilité descendante. MEMBER_KEY a la même valeur que KEY0 pour les clés non composites et la propriété MEMBER_KEY est Null pour les clés composites.
MEMBER_NAME Nom du membre.
MEMBER_TYPE Type du membre. Cette propriété peut prendre les valeurs suivantes :

MDMEMBER_TYPE_REGULAR

MDMEMBER_TYPE_ALL

MDMEMBER_TYPE_FORMULA

MDMEMBER_TYPE_MEASURE

MDMEMBER_TYPE_UNKNOWN



Remarque : MDMEMBER_TYPE_FORMULA est prioritaire sur MDMEMBER_TYPE_MEASURE. Par conséquent, s’il existe un membre de formule (calculé) sur la dimension Mesures, la propriété MEMBER_TYPE pour le membre calculé est MDMEMBER_TYPE_FORMULA.
NOM_UNIQUE_DU_MEMBRE Nom unique du membre. Pour les fournisseurs qui produisent des noms uniques par qualification, chaque composant du nom est délimité.
MEMBER_VALUE Valeur du membre dans le type d'origine.
PARENT_COUNT Nombre de parents de ce membre.
PARENT_LEVEL Distance du parent du membre par rapport au niveau racine de la hiérarchie. Le niveau de la racine est égal à zéro.
PARENT_UNIQUE_NAME Nom unique du parent du membre. NULL est renvoyé pour tous les membres situés au niveau racine. Pour les fournisseurs qui produisent des noms uniques par qualification, chaque composant du nom est délimité.
NIVEAUX_PASSÉS Nombre de niveaux ignorés pour le membre.
UNARY_OPERATOR Opérateur unaire du membre.
UNIQUE_NAME Le nom complet du membre, au format : [dimension].[niveau].[key6].

Syntaxe PROPERTIES pour les propriétés non sensibles au contexte

Utilisez la syntaxe suivante pour spécifier une propriété membre intrinsèque non contextuelle à l’aide du mot clé PROPERTIES :

DIMENSION PROPERTIES Property

Notez que cette syntaxe n’autorise pas la propriété à être qualifiée par une dimension ou un niveau. La propriété ne peut pas être qualifiée, car une propriété de membre intrinsèque non sensible au contexte s'applique à tous les membres d'un axe.

Par exemple, une instruction MDX qui spécifie la propriété membre intrinsèque DESCRIPTION aurait la syntaxe suivante :

DIMENSION PROPERTIES DESCRIPTION

Cette instruction retourne la description de chaque membre de la dimension de l'axe. Si vous avez essayé de qualifier la propriété avec une dimension ou un niveau, comme dans Dimension.DESCRIPTION ou Level.DESCRIPTION, l’instruction ne sera pas validée.

Exemple :

Les exemples suivants montrent des requêtes MDX qui retournent les propriétés intrinsèques.

Exemple 1 : utiliser les propriétés intrinsèques contextuelles dans une requête

L'exemple suivant retourne l'ID parent, la clé et le nom de chaque catégorie de produits. Notez que les propriétés sont exposées en tant que mesures. Cela vous permet d'afficher les propriétés d'un ensemble de cellules lorsque vous exécutez la requête, plutôt que la boîte de dialogue Propriétés de membre dans SSMS. Vous pouvez exécuter une requête comme celle qui suit pour récupérer des métadonnées de membre à partir d'un cube déjà déployé.

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]  

Exemple 2 : propriétés intrinsèques non sensibles au contexte

L'exemple suivant correspond à la liste exhaustive des propriétés intrinsèques non sensibles au contexte. Après avoir exécuté la requête dans SSMS, cliquez sur les membres individuels pour afficher les propriétés dans la boîte de dialogue Propriétés de membre.

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]  

Exemple 3 : retourner les propriétés de membre sous forme de données dans un jeu de résultats

L'exemple suivant retourne la légende traduite pour le membre de la catégorie de produit dans la dimension Product du cube Adventure Works pour les paramètres régionaux spécifiés.

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]  
  

Voir aussi

PeriodsToDate (MDX)
Enfants (MDX)
Hiérarchie (MDX)
Count (Set) (MDX)
Filter (MDX)
AjouterMembresCalculés (MDX)
DrilldownLevel (MDX)
Properties (MDX)
PrevMember (MDX)
Utilisation des propriétés de membre (MDX)
Référence de fonction MDX (MDX)