Freigeben über


Erstellen und Ändern von Objekten (XMLA)

Hauptobjekte können unabhängig erstellt, geändert und gelöscht werden. Zu den Hauptobjekten gehören die folgenden Objekte:

  • Server

  • Datenbanken

  • Dimensionen

  • Cubes

  • Measuregruppen

  • Partitionen

  • Perspektiven

  • Miningmodelle

  • Rollen

  • Einem Server oder einer Datenbank zugeordnete Befehle

  • Datenquellen

Sie verwenden den Befehl Create, um ein Hauptobjekt auf einer instance von Microsoft SQL Server Analysis Services zu erstellen, und den Befehl Alter, um ein vorhandenes Hauptobjekt auf einem instance zu ändern. Beide Befehle werden mit der Execute-Methode ausgeführt.

Erstellen von Objekten

Wenn Sie Objekte mithilfe der Create -Methode erstellen, müssen Sie zunächst das übergeordnete Objekt identifizieren, das das zu erstellende Analysis Services-Objekt enthält. Sie identifizieren das übergeordnete Objekt, indem Sie einen Objektverweis in der ParentObject-Eigenschaft des Create Befehls bereitstellen. Jeder Objektverweis enthält die Objektbezeichner, die notwendig sind, um das übergeordnete Objekt für den Create-Befehl zu identifizieren. Weitere Informationen zu Objektverweise finden Sie unter Definieren und Identifizieren von Objekten (XMLA).

Beispielsweise müssen Sie einen Objektverweis auf einen Cube bereitstellen, um eine neue Measuregruppe für den Cube zu erstellen. Der Objektverweis für den Cube in der Eigenschaft ParentObject enthält sowohl einen Datenbankbezeichner als auch einen Cubebezeichner, da der gleiche Cubebezeichner potenziell von einer anderen Datenbank verwendet werden könnte.

Das ObjectDefinition-Element enthält ASSL-Elemente (Analysis Services Scripting Language), die das zu erstellende Hauptobjekt definieren. Weitere Informationen zu ASSL finden Sie unter Developing with Analysis Services Scripting Language (ASSL).

Wenn Sie das AllowOverwrite-Attribut des Create-Befehls auf True setzen, können Sie ein vorhandenes Hauptobjekt mit dem gleichen Bezeichner überschreiben. Andernfalls tritt ein Fehler auf, wenn im übergeordneten Objekt bereits ein Hauptobjekt mit dem gleichen Bezeichner vorhanden ist.

Weitere Informationen zum Create Befehl finden Sie unter Create Element (XMLA).

Erstellen von Sitzungsobjekten

Sitzungsobjekte sind temporäre Objekte, die nur für die explizite oder implizierte Sitzung zur Verfügung stehen, die von einer Clientanwendung verwendet werden. Bei Beendigung der Sitzung werden diese gelöscht. Sie können Sitzungsobjekte erstellen, indem Sie das Scope Attribut des Create Befehls auf Session festlegen.

Hinweis

Bei Verwendung der Sitzungseinstellung kann das ObjectDefinition Element nur ASSL-Elemente Dimension, Cube oder MiningModel enthalten.

Ändern von Objekten

Wenn Sie Objekte mithilfe der Alter -Methode ändern, müssen Sie zunächst das zu ändernde Objekt identifizieren, indem Sie einen Objektverweis in der Object-Eigenschaft des Alter Befehls angeben. Jeder Objektverweis enthält die Objektbezeichner, die notwendig sind, um das Objekt für den Alter-Befehl zu identifizieren. Weitere Informationen zu Objektverweise finden Sie unter Definieren und Identifizieren von Objekten (XMLA).

Beispielsweise müssen Sie einen Objektverweis auf einen Cube bereitstellen, um die Struktur eines Cubes zu ändern. Der Objektverweis für den Cube in der Eigenschaft Object enthält sowohl einen Datenbankbezeichner als auch einen Cubebezeichner, da der gleiche Cubebezeichner potenziell von einer anderen Datenbank verwendet werden könnte.

Das ObjectDefinition-Element enthält ASSL-Elemente, die das Hauptobjekt definieren, das geändert werden soll. Weitere Informationen zu ASSL finden Sie unter Developing with Analysis Services Scripting Language (ASSL).

Wenn Sie das AllowCreate-Attribut des Alter-Befehls auf True setzen, können Sie das angegebene Hauptobjekt erstellen, wenn das Objekt nicht existiert. Andernfalls tritt ein Fehler auf, wenn ein angegebenes Hauptobjekt nicht bereits vorhanden ist.

Verwenden des ObjectExpansion-Attributs

Wenn Sie nur die Eigenschaften des Hauptobjekts ändern und keine untergeordneten Objekte neu definieren, die im Hauptobjekt enthalten sind, können Sie das ObjectExpansion Attribut des Alter Befehls auf ObjectProperties festlegen. Die ObjectDefinition-Eigenschaft muss dann nur die Elemente für die Eigenschaften des Hauptobjekts enthalten, und der Alter-Befehl lässt die zum Hauptobjekt gehörenden Nebenobjekte unverändert.

Um Nebenobjekte für ein Hauptobjekt neu zu definieren, müssen Sie das ObjectExpansion Attribut auf ExpandFull festlegen, und die Objektdefinition muss alle Nebenobjekte enthalten, die im Hauptobjekt enthalten sind. Wenn die ObjectDefinition-Eigenschaft des Alter-Befehls nicht explizit ein im Hauptobjekt enthaltenes Nebenobjekt einbindet, wird das nicht eingebundene Nebenobjekt gelöscht.

Ändern von Sitzungsobjekten

Legen Sie zum Ändern von Sitzungsobjekten, die Create vom Befehl erstellt wurden, das Scope Attribut des Alter Befehls auf Session fest.

Hinweis

Bei Verwendung der Sitzungseinstellung kann das ObjectDefinition Element nur ASSL-Elemente Dimension, Cube oder MiningModel enthalten.

Erstellen oder Ändern von untergeordneten Objekten

Obwohl ein Create- oder Alter-Befehl nur das oberste Hauptobjekt erstellt oder ändert, kann das Hauptobjekt, das erstellt oder geändert wird, Definitionen innerhalb der einschließenden ObjectDefinition-Eigenschaft für andere Haupt- und Nebenobjekte enthalten, die ihm untergeordnet sind. Beispielsweise geben Sie bei der Definition eines Cubes die übergeordnete Datenbank in ParentObject an, und innerhalb der Cubedefinition in ObjectDefinition können Sie Measuregruppen für den Cube erstellen, und innerhalb der Measuregruppen können Sie Partitionen für jede Measuregruppe definieren. Ein Nebenobjekt kann nur unter dem Hauptobjekt definiert werden, das es enthält. Weitere Informationen zu Haupt- und Nebenobjekten finden Sie unter Datenbankobjekte (Analysis Services – Mehrdimensionale Daten).

Beispiele

BESCHREIBUNG

Im folgenden Beispiel wird eine relationale Datenquelle erstellt, die auf die Mehrdimensionale Microsoft SQL Server-Datenbank von Adventure Works DW 2012 verweist.

Code

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <ParentObject>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
    </ParentObject>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ImpersonationInfo>  
                <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
            </ImpersonationInfo>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT0S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Create>  

BESCHREIBUNG

Im folgenden Beispiel wird die im vorherigen Beispiel erzeugte relationale Datenquelle so geändert, dass der Abfragetimeout der Datenquelle nach 30 Sekunden einsetzt.

Code

<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

Kommentare

Das ObjectExpansion Attribut des Alter Befehls wurde auf ObjectProperties festgelegt. Mit dieser Einstellung kann das ImpersonationInfo-Element , ein Nebenobjekt, von der in ObjectDefinitiondefinierten Datenquelle ausgeschlossen werden. Daher bleiben die Informationen zum Identitätswechsel für die Datenquelle auf "Service Account" festgelegt, wie es im ersten Beispiel angegeben ist.

Weitere Informationen

Execute-Methode (XMLA)
Entwickeln mit Analysis Services Scripting Language (ASSL)
Entwickeln mit XMLA in Analysis Services