Grundlegendes MDX-Skript (MDX)
In einem MDX-Skript (Multidimensional Expressions) wird der Berechnungsprozess für einen Cube in Microsoft SQL Server Analysis Services definiert. Es gibt zwei Arten von MDX-Skripts:
Das MDX-Standardskript
In dem Moment, in dem Sie einen Cube erstellen, erstellt Analysis Services ein MDX-Standardskript für den Cube. In diesem Skript ist ein Berechnungsdurchlauf für den gesamten Cube definiert.Benutzerdefiniertes MDX-Skript
Nachdem Sie einen Cube erstellt haben, können Sie benutzerdefinierte MDX-Skripts hinzufügen, um die Berechnungsmöglichkeiten für den Cube zu erweitern.
Das MDX-Standardskript
Das MDX-Standardskript, das Analysis Services erstellt, wenn Sie einen Cube definieren, enthält eine einzige CALCULATE-Anweisung. Diese einzige CALCULATE-Anweisung befindet sich am Anfang des MDX-Standardskripts und gibt an, dass beim ersten Berechnungsdurchlauf der gesamte Cube berechnet werden soll.
Das MDX-Standardskript enthält außerdem die Skriptbefehle, die benannte Mengen, Zuweisungen und berechnete Elemente erstellen, die im Cube-Designer erstellt wurden:
Analysis Services fügt dem MDX-Standardskript Skriptbefehle direkt hinzu.
Für jede benannte Menge im Cube gibt es im MDX-Standardskript eine entsprechende CREATE SET-Anweisung.
Für jedes berechnete Element, das im Cube definiert ist, gibt es im MDX-Standardskript eine entsprechende CREATE MEMBER-Anweisung.
Die Reihenfolge, die die Skriptbefehle, benannten Mengen und berechneten Elemente im MDX-Standardskript haben, können Sie im Cube-Designer über die Registerkarte Berechnungen festlegen. Weitere Informationen zum Definieren von Berechnungen, die im MDX-Standardskript gespeichert werden, finden Sie unter Berechnungen in mehrdimensionalen Modellen.
Ist einem Cube kein MDX-Skript zugeordnet, nimmt der Cube das MDX-Standardskript an. Einem Cube muss mindestens ein MDX-Skript zugeordnet sein, weil ein Cube anhand des MDX-Skripts das Berechnungsverhalten ermittelt. Dies bedeutet, dass ein Cube, dem kein oder ein leeres MDX-Skript zugeordnet wurde, keine Zellen berechnen kann. Wenn Sie Cubes programmgesteuert erstellen, entweder mit ASSL-Befehlen (Analysis Services Scripting Language) oder mit Analysis Management Objects (AMO), empfiehlt es sich, dass Sie ein MDX-Standardskript erstellen, das eine einzige CALCULATE-Anweisung für den Cube enthält.
Inhalt eines MDX-Skripts
Ein MDX-Skript kann die folgenden Anweisungen und Ausdrücke enthalten:
Alle MDX-Skriptanweisungen
In einem MDX-Skript steuern MDX-Skriptbefehle den Kontext und den Gültigkeitsbereich von Berechnungen und verwalten das Verhalten anderer Anweisungen im MDX-Skript. Zu dieser Kategorie gehören die folgenden Anweisungen:Weitere Informationen zu MDX-Skriptanweisungen finden Sie unter MDX-Skriptanweisungen (MDX).
CREATE MEMBER
Die CREATE MEMBER-Anweisung erstellt berechnete Elemente. Weitere Informationen zum Erstellen von berechneten Elementen finden Sie unter Erstellen von berechneten Elementen in MDX (MDX).CREATE SET
Die CREATE SET-Anweisung erstellt benannte Mengen. Weitere Informationen zum Erstellen von benannten Mengen finden Sie unter Erstellen von benannten Mengen in MDX (MDX).Bedingte Anweisungen
Bedingte Anweisungen erweitern MDX-Skripts um logische Befehle mit Bedingungen. Zu dieser Kategorie gehören die Anweisungen CASE und IF.Zuweisungsausdrücke
Ein Zuweisungsausdruck weist einem eingeschränkten Teilcube einen Ausdruck (z. B. einen Wert) zu. Ein eingeschränkter Teilcubeausdruck ist eine Auflistung eingeschränkter Mengenausdrücke, die in einem MDX-Skript die "Kanten" eines Teilcubes definieren. Der folgende Code zeigt die Syntax für einen eingeschränkten Teilcubeausdruck:<Constrained subcube> ::= ( ( <Constrained set> [<Crossjoin operator> <Constrained set>...] | <ROOT function> | <TREE function> | LEAVES() | * ) [, <Constrained subcube>...] <Constrained set> ::= <Natural hierarchy>.MEMBERS | <Natural hierarchy>.LEVEL(<numeric expression>).MEMBERS | { <Natural hierarchy member> } | DESCENDANTS( <Natural hierarchy member>, <Level expression>, ( SELF | AFTER | SELF_AND_AFTER ) ) | DESCENDANTS( <Natural hierarchy member>, , LEAVES ) <Natural hierarchy> ::= <Hierarchy identifier> <Natural hierarchy member> ::= <Natural hierarchy>.<identifier>[.<identifier>...]