Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie aktualisieren einen Cube mithilfe der UPDATE CUBE-Anweisung . Mit dieser Anweisung können Sie ein Tupel mit einem bestimmten Wert aktualisieren. Um die UPDATE CUBE-Anweisung effektiv zum Aktualisieren eines Cubes zu verwenden, müssen Sie die Syntax für die Anweisung, die Fehlerbedingungen, die auftreten können, und die Auswirkungen, die Aktualisierungen auf einem Cube aufweisen können, verstehen.
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>] ]
Wenn kein vollständiger Satz von Koordinaten für das Tupel angegeben ist, verwenden die nicht angegebenen Koordinaten das Standardelement der Hierarchie. Das identifizierte Tupel muss auf eine Zelle verweisen, die mit der Funktion Summe aggregiert wird, 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 in Atomzellen generiert. All diese individuellen Writeback-Vorgänge werden dann zu der angegebenen Summe zusammengefasst.
Hinweis
Wenn aktualisierte Zellen sich nicht überschneiden, kann die Verbindungseigenschaft Update Isolation Level verwendet werden, um die Leistung von UPDATE CUBE zu verbessern. Weitere Informationen finden Sie unter ConnectionString.
Beispiel
Sie können UPDATE CUBE mithilfe der Measuregruppe "Sales Targets" im Adventure Works-Cube testen. Diese Maßgruppe besteht aus Kennzahlen, die von SUM aggregiert werden, was eine Anforderung für ALTER CUBE ist.
Aktivieren Sie das Rückschreiben für die Maßgruppe "Sales Targets" in der Adventure Works-Datenbank. Klicken Sie in Management Studio mit der rechten Maustaste auf eine Maßgruppe, fahren Sie über Writeback-Optionen, wählen Sie Writeback aktivieren aus.
Im Ordner "Writeback" sollte eine neue Rückschreibtabelle angezeigt werden. Der Tabellenname ist WriteTable_Fact Umsatzkontingent.
Öffnen Sie ein MDX-Abfragefenster. Führen Sie die folgende Select-Anweisung aus, um den ursprünglichen Wert anzuzeigen:
SELECT [Measures].[Sales Amount Quota] on 0 , [Employee].[Employee Department].[Title].&[Sales Representative].children on 1 FROM [Adventure Works]Für jeden Vertreter sollten Verkaufsbetragskontingente angezeigt werden.
Führen Sie die Update cube-Anweisung aus, um einen neuen Wert zurückzuschreiben. In diesem Beispiel legen wir das Verkaufsbetragskontingent auf 0 fest. Da der neue Wert 0 ist, geben Sie keine Zuordnungsmethode an.
UPDATE CUBE [Adventure Works] SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0Führen Sie die SELECT-Anweisung erneut aus. Sie sollten jetzt null für die Kontingente sehen.
Der Rückschreibwert ist auf die aktuelle Sitzung beschränkt. Um den Wert für Benutzer und Sitzungen beizubehalten, verarbeiten Sie die Rückschreibtabelle. Klicken Sie in Management Studio mit der rechten Maustaste auf WriteTable_Fact Vertriebskontingent, und wählen Sie "Prozess" aus.
Um eine Zuordnungsmethode anzugeben, muss der neue Wert größer als Null sein. In diesem Beispiel beträgt der neue Wert für das Verkaufsbetragskontingent zwei Millionen, und die Zuordnungsmethode verteilt den Betrag über alle Vertriebsmitarbeiter.
UPDATE CUBE [Adventure Works]
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000
USE_EQUAL_ALLOCATION
Fehlerbedingungen
In der folgenden Tabelle wird beschrieben, was dazu führen kann, dass Rückschreibvorgänge fehlschlagen, und das Ergebnis dieser Fehler.
| Fehlerbedingung | Ergebnis |
|---|---|
| Das Update enthält Elemente aus derselben Dimension, die nicht miteinander vorhanden sind. | Update schlägt fehl. Der Würfelbereich wird die referenzierte Zelle nicht enthalten. |
| Das Update enthält ein Maß, das sich auf ein Maß eines nicht signierten Typs bezieht. | Update schlägt fehl. Inkremente erfordern, dass die Maßnahme einen negativen Wert annehmen kann. |
| Das Update enthält ein Maß, das andere als Summen aggregiert. | Es wird ein Fehler ausgelöst. |
| Das Update wurde auf einem Unterwürfel versucht. | Es wird ein Fehler ausgelöst. |
Auswirkungen von Änderungen am Würfel
Die folgenden Änderungen wirken sich nicht auf einen Rückschreibvorgang aus:
Verarbeitung eines Würfels, der Messgruppen oder Dimensionen des Würfels.
Hinzufügen von Attributen zu einer beliebigen Dimension.
Hinzufügen einer neuen Dimension.
Löschen einer Dimension, die den Rückschreibvorgang nicht enthält.
Hinzufügen, Ändern oder Entfernen einer Hierarchie.
Hinzufügen einer neuen Maßnahme.
Die folgenden Änderungen können nicht vorgenommen werden, ohne die Rückschreibdaten zu entfernen:
Löschen eines Attributs oder seiner Attributhierarchie, wenn das Attribut im Rückschreiben enthalten ist. Dies schließt das explizite Entfernen des Attributs oder dessen Attributhierarchie oder das Entfernen der übergeordneten Dimension des Attributs ein.
Löschen einer Maßnahme, die im Rückschreiben enthalten ist.
Hinzufügen eines Attributs ohne
(All)Ebene zu einer Dimension, die im Rückschreiben enthalten ist.Ändern der Granularität der Dimension für eine Dimension, die im Rückschreibvorgang enthalten ist.