Freigeben über


Verwenden von Cuberückschreiben (MDX)

Sie aktualisieren einen Cube, indem Sie die UPDATE CUBE-Anweisung verwenden. Mit dieser Anweisung können Sie ein Tupel mit einem bestimmten Wert aktualisieren. Damit Sie einen Cube mit der UPDATE CUBE-Anweisung effizient aktualisieren können, müssen Sie die Syntax der Anweisung, die Fehlerbedingungen, die auftreten können, und die Auswirkungen kennen, die Aktualisierungen auf einen Cube haben können.

Syntax der UPDATE CUBE-Anweisung

Die folgende Syntax beschreibt die UPDATE CUBE-Anweisung:

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

Sind die Koordinaten für das Tupel nicht vollständig angegeben, wird für die nicht angegebenen Koordinaten das Standardelement der Hierarchie verwendet. Das identifizierte Tupel muss auf eine Zelle verweisen, die mit der Sum-Funktion aggregiert ist, und darf kein berechnetes Element als eine der Koordinaten der Zelle verwenden.

Sie können sich die UPDATE CUBE-Anweisung als Unterroutine vorstellen, die eine Reihe einzelner Rückschreibvorgänge für atomare Zellen generiert. Diese einzelnen Rückschreibvorgänge ergeben dann als Rollup die angegebene Summe. Im folgenden Beispiel aktualisiert die UPDATE CUBE-Anweisung das Units Shipped-Measure für die Drink-Produktfamilie auf null (0):

UPDATE CUBE [Warehouse and Sales] SET ([Measures].[Units Shipped], [Product].[Product Family].[Product Family].&[Drink]) = 0 USE_NO_ALLOCATION
HinweisHinweis

In MicrosoftSQL ServerAnalysis Services können Sie jede Zelle aktualisieren.

Wichtiger HinweisWichtig

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. Weitere Informationen finden Sie unter ConnectionString.

Fehlerbedingungen

In der folgenden Tabelle sind sowohl die möglichen Ursachen für Fehler bei Rückschreibvorgängen als auch die Ergebnisse solcher Fehler beschrieben.

Fehlerbedingung

Ergebnis

Die Aktualisierung beinhaltet Elemente aus derselben Dimension, die es nicht gemeinsam gibt.

Die Aktualisierung erzeugt einen Fehler. Der Cuberaum enthält nicht die Zelle, auf die verwiesen wird.

Die Aktualisierung beinhaltet ein Measure, dessen Quelle ein Measure mit einem Datentyp ohne Vorzeichen ist.

Die Aktualisierung erzeugt einen Fehler. Für Inkremente ist es erforderlich, dass das Measure einen negativen Wert annehmen kann.

Die Aktualisierung beinhaltet ein Measure, das nicht als Summe aggregiert wird.

Ein Fehler wird ausgelöst.

Die Aktualisierung wurde für einen Teilcube versucht.

Ein Fehler wird ausgelöst.

Auswirkungen von Cubeänderungen

Die folgenden Änderungen wirken sich nicht auf ein Rückschreiben aus:

  • Verarbeiten eines Cubes, der Measuregruppen des Cubes oder der Dimensionen des Cubes.

  • Hinzufügen von Attributen zu einer Dimension.

  • Hinzufügen einer neuen Dimension.

  • Löschen einer Dimension, in der das Rückschreiben nicht enthalten ist.

  • Hinzufügen, Ändern oder Entfernen einer Hierarchie.

  • Hinzufügen eines neues Measures.

Die folgenden Änderungen können nicht vorgenommen werden, ohne die Rückschreibedaten zu entfernen:

  • Löschen eines Attributs oder der Hierarchie des Attributs, wenn das Attribut im Rückschreiben enthalten ist. Dazu gehören explizit das Entfernen des Attributs oder seiner Hierarchie sowie das Entfernen der übergeordneten Dimension des Attributs.

  • Löschen eines Measures, das im Rückschreiben enthalten ist.

  • Hinzufügen eines Attributs ohne eine (All)-Ebene zu einer Dimension, die im Rückschreiben enthalten ist.

  • Ändern der Dimensionsgranularität für eine Dimension, die im Rückschreiben enthalten ist.

Siehe auch

Konzepte