Freigeben über


UPDATE CUBE-Anweisung (MDX)

Aktualisiert: 17. Juli 2006

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 multidimensionalen 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:

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

USE_EQUAL_INCREMENT

Jede Blattzelle, die zur aktualisierten Zelle beiträgt, wird entsprechend dem folgenden Ausdruck geändert:

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

USE_WEIGHTED_ALLOCATION

Jeder Blattzelle, die zur aktualisierten Zelle beiträgt, wird derselbe Wert zugewiesen, der auf dem folgenden Ausdruck basiert:

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

USE_WEIGHTED_INCREMENT

Jede Blattzelle, die zur aktualisierten Zelle beiträgt, wird entsprechend dem folgenden Ausdruck geändert:

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

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 null (0) und 1 ausgedrückt werden. Dieser Wert gibt den Anteil des zugeordneten Wertes an, den Sie den von der Zuordnung betroffenen Blattzellen zuweisen möchten. Der Programmierer der Clientanwendung ist dafür verantwortlich, Ausdrücke zu erstellen, deren Rollupaggregatwerte gleich dem zugeordneten Wert des Ausdrucks sind.

ms145488.Caution(de-de,SQL.90).gifVorsicht:
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 ein Snapshot der Daten erstellt, um sicherzustellen, dass die sich ergebenden Berechnungen richtig sind.

ms145488.Caution(de-de,SQL.90).gifVorsicht:
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.

Siehe auch

Andere Ressourcen

MDX-Datenbearbeitungsanweisungen (MDX)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

17. Juli 2006

Geänderter Inhalt:
  • Syntax und Argumente wurden zur Verdeutlichung aktualisiert.