Manipolazione dei dati MDX - UPDATE CUBEMDX Data Manipulation - UPDATE CUBE

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

L'istruzione UPDATE CUBE viene utilizzata per eseguire il writeback dei dati in qualsiasi cella di un cubo aggregato al relativo elemento padre mediante l'aggregazione SUM.The UPDATE CUBE statement is used to write back data to any cell in a cube that aggregates to its parent using the SUM aggregation. Per ulteriori informazioni ed esempi, vedere "Informazioni sulle allocazioni" in questo post di blog: la creazione di un'applicazione di Writeback con Analysis Services (blog).For more explanation and an example, see "Understanding Allocations" in this blog post: Building a Writeback Application with Analysis Services (blog).

SintassiSyntax


UPDATE [ CUBE ] Cube_Name   
   SET   
            <update clause>   
           [, <update clause> ...n ]  

<update clause> ::=   
      Tuple_Expression[.VALUE]= New_Value  
      [   
        USE_EQUAL_ALLOCATION   
        | USE_EQUAL_INCREMENT   
        | USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]   
        | USE_WEIGHTED_INCREMENT [ BY Weight_Expression]  
      ]  

ArgomentiArguments

Cube_NameCube_Name
Stringa valida che specifica il nome di un cubo.A valid string that provides the name of a cube.

Tuple_ExpressionTuple_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce una tupla.A valid Multidimensional Expressions (MDX) expression that returns a tuple.

Nuovo_valoreNew_Value
Espressione numerica valida.A valid numeric expression.

Weight_ExpressionWeight_Expression
Espressione numerica MDX (Multidimensional Expression) valida che restituisce un valore decimale compreso tra 0 e 1.A valid Multidimensional Expressions (MDX) numeric expression that returns a decimal value between 0 and 1.

OsservazioniRemarks

È possibile aggiornare il valore di una cella foglia o non foglia specificata di un cubo, allocando facoltativamente il valore di una cella non foglia specificata a celle foglia dipendenti.You can update the value of a specified leaf or nonleaf cell in a cube, optionally allocating the value for a specified non-leaf cell across dependent leaf cells. La cella specificata dall'espressione di tupla può essere una cella valida qualsiasi dello spazio multidimensionale, ovvero la cella non deve essere necessariamente una cella foglia.The cell specified by the tuple expression can be any valid cell in the multidimensional space (that is, the cell does not have to be a leaf cell). Tuttavia, la cella deve essere aggregata con la somma funzione di aggregazione e non deve includere un membro calcolato nella tupla utilizzata per identificare la cella.However, the cell must be aggregated with the Sum aggregate function and must not include a calculated member in the tuple that is used to identify the cell.

Potrebbe essere opportuno considerare il UPDATE CUBE istruzione come una subroutine che genera automaticamente una serie di operazioni di writeback delle celle singole celle foglia e non foglia che eseguirà il rollup somma specificata.It may be helpful to think of the UPDATE CUBE statement as a subroutine that will automatically generate a series of individual cell writeback operations to leaf and non-leaf cells that will roll up into a specified sum.

Di seguito è una descrizione dei metodi di allocazione.The following is a description of the methods of allocation.

USE_EQUAL_ALLOCATION: ogni cella foglia che contribuisce alla cella aggiornata verrà assegnato un valore uguale basato sull'espressione seguente.USE_EQUAL_ALLOCATION: Every leaf cell that contributes to the updated cell will be assigned an equal value based on the following expression.

<leaf cell value> =   
<New Value> / Count(leaf cells that are contained in <tuple>)  

USE_EQUAL_INCREMENT:ogni cella foglia che contribuisce alla cella aggiornata verrà modificato in base all'espressione seguente.USE_EQUAL_INCREMENT:Every leaf cell that contributes to the updated cell will be changed according to the following expression.

<leaf cell value> = <leaf cell value> +   
(<New Value > - <existing value>) /  
Count(leaf cells contained in <tuple>)  

USE_WEIGHTED_ALLOCATION: ogni cella foglia che contribuisce alla cella aggiornata verrà assegnato un valore uguale è basato sull'espressione seguente.USE_WEIGHTED_ALLOCATION: Every leaf cell that contributes to the updated cell will be assigned an equal value that is based on the following expression.

<leaf cell value> = < New Value> * Weight_Expression  

USE_WEIGHTED_INCREMENT: ogni cella foglia che contribuisce alla cella aggiornata verrà modificato in base all'espressione seguente.USE_WEIGHTED_INCREMENT: Every leaf cell that contributes to the updated cell will be changed according to the following expression.

<leaf cell value> = <leaf cell value> +   
(<New Value> - <existing value>)  * Weight_Expression  

Se un'espressione di ponderazione non è specificata, il UPDATE CUBE istruzione utilizza in modo implicito l'espressione seguente.If a weight expression is not specified, the UPDATE CUBE statement implicitly uses the following expression.

Weight_Expression = <leaf cell value> / <existing value>  

Un'espressione di ponderazione deve essere espressa come valore decimale compreso tra zero (0) e 1.A weight expression should be expressed as a decimal value between zero (0) and 1. Questo valore specifica il rapporto del valore allocato che si desidera assegnare alle celle foglia interessate dall'allocazione.This value specifies the ratio of the allocated value that you want to assign to the leaf cells that are affected by the allocation. È responsabilità dello sviluppatore dell'applicazione client creare espressioni con valori aggregati di rollup uguali ai valori allocati dalle espressioni.The client application programmer's has the responsibility of creating expressions whose rollup aggregate values will equal the allocated value of the expression.

Attenzione

L'applicazione client deve prendere in considerazione l'allocazione di tutte le dimensioni simultaneamente in modo da evitare risultati imprevisti, tra cui valori di rollup non corretti o dati inconsistenti.The client application must consider the allocation of all dimensions concurrently to avoid possible unexpected results, including incorrect rollup values or inconsistent data.

Ogni UPDATE CUBE allocazione deve essere considerata atomica fini delle transazioni.Each UPDATE CUBE allocation should be considered to be atomic for transactional purposes. Ciò significa che, se una delle operazioni di allocazione ha esito negativo, ad esempio nel caso di errore in una formula o di una violazione di sicurezza, l'intera operazione UPDATE CUBE avrà esito negativo.This means, that if any one of the allocation operations fails for any reason, such as an error in a formula or a security violation, the whole UPDATE CUBE operation will fail. Prima dell'elaborazione dei calcoli delle singole operazioni di allocazione viene eseguito uno snapshot dei dati per assicurare che i calcoli risultanti siano corretti.Before the calculations of the individual allocation operations are processed, a snapshot of the data is taken to ensure that the resulting calculations are correct.

Attenzione

Quando si utilizza una misura contenente dati integer, il metodo USE_WEIGHTED_ALLOCATION potrebbe restituire risultati non precisi in seguito a modifiche di arrotondamento incrementali.When used on a measure that contains integers, the USE_WEIGHTED_ALLOCATION method can return imprecise results caused by incremental rounding changes.

Importante

Quando le celle aggiornate non si sovrappongono, la proprietà della stringa di connessione Update Isolation Level può essere usata per migliorare le prestazioni di UPDATE CUBE.When updated cells do not overlap, the Update Isolation Level connection string property can be used to enhance performance for UPDATE CUBE.

Vedere ancheSee Also

ConnectionStringConnectionString
Le istruzioni di manipolazione dei dati MDX ( MDX )MDX Data Manipulation Statements (MDX)