Compartilhar via


Usando Retroalimentação de Cubo (MDX)

Você atualiza um cubo usando a instrução UPDATE CUBE . Essa instrução permite que você atualize uma tupla com um valor específico. Para usar efetivamente a instrução UPDATE CUBE para atualizar um cubo, você precisa entender a sintaxe da instrução, as condições de erro que podem ocorrer e o efeito que as atualizações podem ter em um cubo.

Sintaxe da instrução UPDATE CUBE

A sintaxe a seguir descreve a instrução UPDATE CUBE:

UPDATE [CUBE] <Cube_Name> SET <tuple>.VALUE = <value> [,<tuple>.VALUE = <value>...]  
 [ USE_EQUAL_ALLOCATION | USE_EQUAL_INCREMENT |  
  USE_WEIGHTED_ALLOCATION [BY <weight value_expression>] |  
  USE_WEIGHTED_INCREMENT [BY <weight value_expression>] ]   

Se um conjunto completo de coordenadas não for especificado para a tupla, as coordenadas não especificadas usarão o membro padrão da hierarquia. A tupla identificada deve fazer referência a uma célula agregada com a função Soma e não deve usar um membro calculado como uma das coordenadas da célula.

Você pode pensar na instrução UPDATE CUBE como uma sub-rotina que gera uma série de operações de write-back individuais para células atômicas. Todas essas operações de write-back individuais são acumuladas na soma especificada.

Observação

Quando as células atualizadas não se sobrepõem, a propriedade de string de conexão Update Isolation Level pode ser usada para melhorar o desempenho do UPDATE CUBE. Para obter mais informações, consulte ConnectionString.

Exemplo

Você pode testar o UPDATE CUBE usando o grupo de medidas Metas de Vendas no cubo Adventure Works. Esse grupo de medidas consiste em medidas agregadas por SUM, que é um requisito para UPDATE CUBE.

  1. Habilite a gravação reversa para o grupo de medidas Destinos de Vendas no banco de dados Adventure Works. No Management Studio, clique com o botão direito do mouse em um grupo de medidas, aponte para Opções de Write-Back, escolha Habilitar Write-back.

    Você deverá ver uma nova tabela de Writeback na pasta Writeback. O nome da tabela é WriteTable_Fact Cota de Vendas.

  2. Abra uma janela de consulta MDX. Execute a seguinte instrução select para exibir o valor original:

    SELECT [Measures].[Sales Amount Quota] on 0 ,  
    [Employee].[Employee Department].[Title].&[Sales Representative].children on 1  
    FROM [Adventure Works]  
    
    

    Você deve ver cotas de valor de vendas para cada representante.

  3. Execute a instrução 'update cube' para gravar um novo valor. Neste exemplo, estamos definindo a cota de valor de vendas como 0. Como o novo valor é 0, não especifique um método de alocação.

    UPDATE CUBE [Adventure Works]   
    SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0  
    
    
  4. Execute novamente a instrução SELECT. Você deve ver agora zero nas cotas.

O valor de write-back é restrito à sessão atual. Para manter o valor entre usuários e sessões, processe a tabela de write-back. No Management Studio, clique com o botão direito do mouse em WriteTable_Fact Cota de Vendas e escolha Processo.

Para especificar um método de alocação, o novo valor deve ser maior que zero. Neste exemplo, o novo valor da Cota de Valor de Vendas é de dois milhões e o método de alocação distribui o valor entre todos os representantes de vendas.

UPDATE CUBE [Adventure Works]   
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000   
USE_EQUAL_ALLOCATION  

Condições de erro

A tabela a seguir descreve o que pode fazer com que os write-backs falhem e o resultado desses erros.

Condição de erro Resultado
A atualização inclui membros da mesma dimensão que não coexistem uns com os outros. A atualização falhará. O espaço do cubo não conterá a célula referenciada.
A atualização inclui uma medida originada em uma medida de um tipo não assinado. A atualização falhará. Incrementos exigem que a medida seja capaz de obter um valor negativo.
A atualização inclui uma medida que agrega além da soma. Um erro é gerado.
A atualização foi testada em um subcubo. Um erro é gerado.

Efeito das mudanças no cubo

As seguintes alterações não terão efeito em um write-back:

  • Processamento de um cubo, grupos de medidas do cubo ou dimensões do cubo.

  • Adicionando atributos a qualquer dimensão.

  • Adicionando uma nova dimensão.

  • Excluindo uma dimensão que não inclui o write-back.

  • Adicionar, modificar ou remover uma hierarquia.

  • Adicionando uma nova medida.

As seguintes alterações não podem ser feitas sem remover os dados de write-back:

  • Excluindo um atributo ou sua hierarquia de atributos, se o atributo estiver incluído no write-back. Isso inclui remover explicitamente o atributo ou sua hierarquia de atributos ou remover a dimensão pai do atributo.

  • Excluindo uma medida incluída no write-back.

  • Adicionando um atributo sem um (All) nível a uma dimensão incluída no write-back.

  • Alterando a granularidade da dimensão para uma dimensão incluída no write-back.

Consulte Também

Modificando dados (MDX)