Compartilhar via


O script básico de MDX (MDX)

Um script MDX define o processo de cálculo para um cubo no Microsoft SQL Server Analysis Services. Existem dois tipos de scripts MDX:

  • O script MDX padrão
    Quando você cria um cubo, o Analysis Services cria um script MDX padrão para esse cubo. Esse script define uma fase de cálculo para o cubo inteiro.

  • Script MDX definido pelo usuário
    Depois que você criar um cubo, poderá adicionar scripts MDX definidos pelo usuário que ampliam os recursos de cálculo do cubo.

O script MDX padrão

O script MDX padrão criado pelo Analysis Services quando você define um cubo contém uma única instrução CALCULATE. Essa única instrução CALCULATE fica no início do script MDX padrão e indica que o cubo inteiro deve ser calculado durante a primeira fase de cálculo.

O script MDX padrão também contém comandos de script que criam conjuntos nomeados, atribuições e membros calculados criados no Designer de Cubo:

  • O Analysis Services adiciona diretamente comandos de script ao script MDX padrão.

  • Para cada conjunto nomeado do cubo, existe uma instrução CREATE SET correspondente no script MDX padrão.

  • Para cada membro calculado definido no cubo, existe uma instrução CREATE MEMBER correspondente no script MDX padrão.

Você controla a ordem de comandos de script, conjuntos nomeados e membros calculados no script MDX padrão usando a guia Cálculos do Designer de Cubo. Para obter mais informações sobre como definir cálculos armazenados no script MDX padrão, consulte Definindo cálculos.

Se não houver um script MDX associado a um cubo, este assumirá o script MDX padrão. Um cubo precisa estar associado a pelo menos um script MDX porque o cubo depende do script MDX para determinar o comportamento do cálculo. Em outras palavras, um cubo que não foi associado a um script MDX ou foi associado a um script MDX vazio não poderia e não deveria ser capaz de calcular células. Se você criar cubos programaticamente, seja usando comandos do Analysis Services Scripting Language (ASSL) ou usando os Objetos de Gerenciamento de Análise (AMO), é recomendável que você crie um script MDX padrão que contenha uma única instrução CALCULATE para o cubo.

Conteúdo do script MDX

Um script MDX pode conter as seguintes instruções e expressões:

  • Todas as instruções de script MDX
    Em scripts MDX, as instruções de script MDX controlam o contexto e o escopo dos cálculos e gerenciam o comportamento de outras instruções do script MDX. Essa categoria inclui as seguintes instruções:

    Para obter mais informações sobre instruções de scripts MDX, consulte Instruções de script MDX (MDX).

  • CREATE MEMBER
    Uma instrução CREATE MEMBER cria membros calculados. Para obter mais informações sobre como criar membros calculados, consulte Criando membros calculados em MDX (MDX).

  • CREATE SET
    A instrução CREATE SET cria conjuntos nomeados. Para obter mais informações sobre como criar conjuntos nomeados, consulte Criando conjuntos nomeados em MDX (MDX).

  • Instruções condicionais
    As instruções condicionais adicionam lógica condicional a scripts MDX. Essa categoria inclui as instruções CASE e IF.

  • Expressões de atribuição
    Uma expressão de atribuição atribui uma expressão, como um valor, a um subcubo restrito. Uma expressão de subcubo restrito é uma coleção de expressões de conjunto restritas que definem as "bordas" de um subcubo em um script MDX. Os códigos a seguir mostram a sintaxe de uma expressão de subcubo restrito:

    <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>...]