UPDATE CUBE-Anweisung (MDX)
Aktualisiert den Wert einer angegebenen Blatt- oder Nichtblattzelle in einem Cube. Dabei wird optional der Wert für eine angegebene Nichtblattzelle den abhängigen Blattzellen zugeordnet.
Syntax
UPDATE [ CUBE ] Cube_Name
SET
<update clause>
[, <update clause> ...n ]
<update clause> ::=
Tuple_Expression[.VALUE]= New_Value
[
NO_ALLOCATION
| USE_EQUAL_ALLOCATION
| USE_EQUAL_INCREMENT
| USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]
| USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
]
Argumente
Cube_Name
Eine gültige Zeichenfolge, die den Namen eines Cubes bereitstellt.Tuple_Expression
Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der ein Tupel zurückgibt.New_Value
Ein gültiger numerischer Ausdruck.Weight_Expression
Ein gültiger numerischer MDX-Ausdruck (Multidimensional Expressions), der einen Dezimalwert zwischen 0 und 1 zurückgibt.
Hinweise
Bei der durch den Tupelausdruck angegebenen Zelle kann es sich um eine beliebige gültige Zelle im mehrdimensionalen Raum handeln (d. h., die Zelle muss keine Blattzelle sein). Die Zelle muss jedoch mit der Sum-Aggregatfunktion aggregiert sein und darf kein berechnetes Element in dem Tupel enthalten, durch das die Zelle identifiziert wird.
Sie können sich die UPDATE CUBE-Anweisung als Unterroutine vorstellen, die automatisch eine Reihe von einzelnen Vorgängen zum Zellenrückschreiben für Blatt- und Nichtblattzellen generiert, deren Rollup eine angegebene Summe ergibt.
In der folgenden Tabelle sind die Zuordnungsmethoden beschrieben.
Zuordnungsmethode |
Beschreibung |
---|---|
USE_EQUAL_ALLOCATION |
Jeder Blattzelle, die zur aktualisierten Zelle beiträgt, wird derselbe Wert zugewiesen, der auf dem folgenden Ausdruck basiert:
|
USE_EQUAL_INCREMENT |
Jede Blattzelle, die zur aktualisierten Zelle beiträgt, wird entsprechend dem folgenden Ausdruck geändert:
|
USE_WEIGHTED_ALLOCATION |
Jeder Blattzelle, die zur aktualisierten Zelle beiträgt, wird derselbe Wert zugewiesen, der auf dem folgenden Ausdruck basiert:
|
USE_WEIGHTED_INCREMENT |
Jede Blattzelle, die zur aktualisierten Zelle beiträgt, wird entsprechend dem folgenden Ausdruck geändert:
|
Wird kein Gewichtungsausdruck angegeben, verwendet die UPDATE CUBE-Anweisung implizit den folgenden Ausdruck:
Weight_Expression = <leaf cell value> / <existing value>
Ein Gewichtungsausdruck sollte als Dezimalwert zwischen 0 (null) und 1 ausgedrückt werden. Dieser Wert gibt das Verhältnis zum zugeordneten Wert an, den Sie den Blattzellen zuweisen möchten, die von der Zuordnung betroffen sind. Der Programmierer der Clientanwendung ist dafür verantwortlich, Ausdrücke zu erstellen, deren Rollupaggregatwerte gleich dem zugeordneten Wert des Ausdrucks sind.
Vorsicht |
---|
Die Clientanwendung muss die gleichzeitige Zuordnung aller Dimensionen berücksichtigen, um unerwartete Ergebnisse, einschließlich falscher Rollupwerte oder inkonsistenter Daten, zu vermeiden. |
Jede UPDATE CUBE-Zuordnung sollte zu Transaktionszwecken als atomar betrachtet werden. Das bedeutet, dass beim Fehlschlagen eines einzelnen Zuordnungsvorgangs, z. B. wegen eines Fehlers in einer Formel oder einer Sicherheitsverletzung, der gesamte UPDATE CUBE-Vorgang fehlschlägt. Bevor die Berechnungen der einzelnen Zuordnungsvorgänge verarbeitet werden, wird eine Momentaufnahme der Daten erstellt, um sicherzustellen, dass die sich ergebenden Berechnungen richtig sind.
Vorsicht |
---|
Wenn die USE_WEIGHTED_ALLOCATION-Methode für ein Measure verwendet wird, das ganze Zahlen enthält, gibt die Methode möglicherweise aufgrund von inkrementellen Rundungsänderungen ungenaue Ergebnisse zurück. |
Wichtig |
---|
Wenn sich die aktualisierten Zellen nicht überlagern, kann mithilfe der Update Isolation Level-Eigenschaft der Verbindungszeichenfolge das Leistungsverhalten in Bezug auf UPDATE CUBE verbessert werden. |