Share via


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 "Erstellen", um ein Hauptobjekt in einer Instanz von Microsoft SQL Server SQL Server Analysis Services zu erstellen, und den Befehl "Alter", um ein vorhandenes Hauptobjekt in einer Instanz 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 zuerst das übergeordnete Objekt identifizieren, das das zu erstellende SQL Server Analysis Services Objekt enthält. Sie identifizieren das übergeordnete Objekt, indem Sie einen Objektverweis in der ParentObject-Eigenschaft des Befehls "Erstellen" bereitstellen. Jeder Objektverweis enthält die Objektbezeichner, die zum eindeutigen Identifizieren des übergeordneten Objekts für den Befehl "Erstellen" erforderlich sind. 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 ParentObject-Eigenschaft enthält sowohl einen Datenbankbezeichner als auch einen Cubebezeichner, da derselbe Cubebezeichner möglicherweise in einer anderen Datenbank verwendet werden kann.

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

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

Weitere Informationen zum Befehl "Erstellen" 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 Befehls "Erstellen " auf "Session" festlegen.

Hinweis

Wenn Sie die Sitzungseinstellung verwenden, kann das ObjectDefinition-Element nur Dimension-, Cube- oder MiningModel-ASSL-Elemente enthalten.

Ändern von Objekten

Beim Ändern von Objekten mithilfe der Alter-Methode müssen Sie zuerst das Objekt identifizieren, das geändert werden soll, indem Sie einen Objektverweis in der Objekteigenschaft des Befehls Alter angeben. Jeder Objektverweis enthält die Objektbezeichner, die zum eindeutigen Identifizieren des Objekts für den Befehl Alter erforderlich sind. 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 Object-Eigenschaft enthält sowohl einen Datenbankbezeichner als auch einen Cubebezeichner, da derselbe Cubebezeichner möglicherweise in einer anderen Datenbank verwendet werden kann.

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

Wenn Sie das AllowCreate-Attribut des Befehls Alter auf true festlegen, können Sie das angegebene Hauptobjekt erstellen, wenn das Objekt nicht vorhanden ist. 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 Nebenobjekte neu definieren, die vom Hauptobjekt enthalten sind, können Sie das ObjectExpansion-Attribut des Befehls Alter auf ObjectProperties festlegen. Die ObjectDefinition-Eigenschaft muss dann nur die Elemente für die Eigenschaften des Hauptobjekts enthalten, und der Befehl Alter verlässt kleinere Objekte, die dem Hauptobjekt zugeordnet sind.

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 Befehls Alter kein Nebenobjekt enthält, das vom Hauptobjekt enthalten ist, wird das nicht enthaltene Nebenobjekt gelöscht.

Ändern von Sitzungsobjekten

Zum Ändern von Sitzungsobjekten, die vom Befehl "Erstellen" erstellt wurden, legen Sie das Scope-Attribut des Befehls "Alter " auf "Session" fest.

Hinweis

Wenn Sie die Sitzungseinstellung verwenden, kann das ObjectDefinition-Element nur Dimension-, Cube- oder MiningModel-ASSL-Elemente enthalten.

Erstellen oder Ändern von untergeordneten Objekten

Obwohl ein Befehl "Erstellen " oder "Alter " nur ein oberstes Hauptobjekt erstellt oder geändert wird, kann das hauptobjekt, das erstellt oder geändert wird, Definitionen innerhalb der eingeschlossenen ObjectDefinition-Eigenschaft für andere Haupt- und Nebenobjekte enthalten, die ihm untergeordnet sind. Wenn Sie beispielsweise einen Cube definieren, geben Sie die übergeordnete Datenbank in ParentObject an, und innerhalb der Cubedefinition in ObjectDefinition können Sie Measuregruppen für den Cube definieren, und innerhalb der Maßgruppen 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 Database Objects (Analysis Services - Multidimensional Data).For more information about major and minor objects, see Database Objects (Analysis Services - Multidimensional Data).

Beispiele

BESCHREIBUNG

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

Code

<Create xmlns="http://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="http://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 Befehls Alter wurde auf ObjectProperties festgelegt. Mit dieser Einstellung kann das ImpersonationInfo-Element , ein Nebenobjekt, aus der in ObjectDefinition definierten 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