Script MDX de base (MDX)

Un script MDX (Multidimensional Expressions) définit le processus de calcul pour un cube dans MicrosoftSQL ServerAnalysis Services. Il existe deux types de scripts MDX :

  • Script MDX par défaut
    Au moment de la création d'un cube, Analysis Services crée un script MDX par défaut pour celui-ci. Ce script définit un test de calcul pour l'intégralité du cube.

  • Script MDX défini par l'utilisateur
    Lorsque vous avez créé un cube, vous pouvez ajouter des scripts MDX définis par l'utilisateur qui étendent les possibilités de calcul du cube.

Script MDX par défaut

Le script MDX par défaut créé par Analysis Services lors de la définition d'un cube contient une instruction CALCULATE unique. Cette dernière se situe au début du script MDX par défaut et indique que l'intégralité du cube doit être calculée pendant le premier test de calcul.

Le script MDX par défaut contient également les commandes de script qui créent des jeux nommés, des assignations et des membres calculés dans le Concepteur de cube :

  • Analysis Services ajoute directement les commandes de script au script MDX par défaut.

  • Pour chaque jeu nommé défini dans le cube, il existe une instruction CREATE SET correspondante dans le script MDX par défaut.

  • Pour chaque membre calculé défini dans le cube, il existe une instruction CREATE MEMBER correspondante dans le script MDX par défaut.

Vous pouvez contrôler l'ordre des commandes de script, des jeux nommés et des membres calculés dans le script MDX par défaut à l'aide de l'onglet Calculs du Concepteur de cube. Pour plus d'informations sur la définition des calculs stockés dans le script MDX par défaut, consultez Définition de calculs.

Si aucun script MDX n'est associé à un cube, ce dernier utilise le script MDX par défaut. Un cube doit être au moins associé à un script MDX, car il se base sur celui-ci pour déterminer le comportement de calcul. En d'autres termes, un cube qui n'est associé à aucun script MDX ou associé à un script MDX vide ne peut pas calculer de cellules. Si vous créez des cubes par programme, à l'aide de commandes ASSL (Analysis Services Scripting Language) ou de l'objets AMO (Analysis Management Object), il est recommandé de créer un script MDX par défaut contenant une instruction CALCULATE unique pour le cube.

Contenu du script MDX

Un script MDX peut contenir les instructions et expressions suivantes :

  • Toutes les instructions de script MDX
    Dans les scripts MDX, les instructions de script MDX contrôlent le contexte et la portée des calculs et gèrent le comportement des autres instructions dans le script MDX. Cette catégorie comprend les instructions suivantes :

    Pour plus d'informations sur les instructions de script MDX, consultez Instructions de script MDX (MDX).

  • CREATE MEMBER
    L'instruction CREATE MEMBER crée des membres calculés. Pour plus d'informations sur la création de membres calculés, consultez Création de membres calculés dans MDX (MDX).

  • CREATE SET
    L'instruction CREATE SET crée des jeux nommés. Pour plus d'informations sur la création de jeux nommés, consultez Création de jeux nommés à l'aide d'expressions MDX (MDX).

  • Instructions conditionnelles
    Les instructions conditionnelles ajoutent une logique conditionnelle aux scripts MDX. Cette catégorie comprend les instructions CASE et IF.

  • Expressions d'assignation
    Une expression d'assignation affecte une expression, telle qu'une valeur, à un sous-cube contraint. Une expression de sous-cube contraint est une collection d'expressions de jeux contraints qui définit les « côtés » d'un sous-cube au sein d'un script MDX. Les codes suivants représentent la syntaxe d'une expression de sous-cube contraint :

    <Constrained subcube> ::= ( 
        ( <Constrained set> [<Crossjoin operator> <Constrained set>...] |
        <ROOT function> |
        <TREE function> |
        LEAVES() |
        * ) [, <Constrained subcube>...]
    <Constrained set> ::= 
        <Natural hierarchy>.MEMBERS | 
        <Natural hierarchy>.LEVEL(<numeric expression>).MEMBERS | 
        { <Natural hierarchy member> } | 
        DESCENDANTS( <Natural hierarchy member>, <Level expression>, ( SELF | AFTER | SELF_AND_AFTER ) ) | 
        DESCENDANTS( <Natural hierarchy member>, , LEAVES )
    <Natural hierarchy> ::= <Hierarchy identifier>
    <Natural hierarchy member> ::= <Natural hierarchy>.<identifier>[.<identifier>...]