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

  • Maße

  • Würfel

  • Messgruppen

  • Partitionen

  • Perspektiven

  • Miningmodelle

  • Rollen

  • Befehle, die einem Server oder einer Datenbank zugeordnet sind

  • Datenquellen

Mit dem Befehl "Erstellen" erstellen Sie ein Hauptobjekt für eine Instanz von Microsoft SQL Server Analysis Services 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 Analysis Services-Objekt enthält. Sie identifizieren das übergeordnete Objekt, indem Sie einen Objektverweis in der ParentObject-Eigenschaft des Create Befehls angeben. Jeder Objektverweis enthält die Objektbezeichner, die erforderlich sind, um das übergeordnete Objekt für den Create Befehl eindeutig zu identifizieren. Weitere Informationen zu Objektverweise finden Sie unter Definieren und Identifizieren von Objekten (XMLA).

Sie müssen z. B. einen Objektverweis auf einen Cube angeben, 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).

Wenn Sie das AllowOverwrite Attribut des Create Befehls auf "true" festlegen, können Sie ein vorhandenes Hauptobjekt mit dem angegebenen Bezeichner überschreiben. Andernfalls tritt ein Fehler auf, wenn ein Hauptobjekt mit dem angegebenen Bezeichner bereits im übergeordneten Objekt 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 implizite Sitzung verfügbar sind, die von einer Clientanwendung verwendet wird und beim Beenden der Sitzung gelöscht werden. 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 Dimension-, Cube- oder MiningModel ASSL-Elemente enthalten.

Ändern von Objekten

Beim Ändern von Objekten mithilfe der Alter Methode müssen Sie zunächst das zu ändernde Objekt identifizieren, indem Sie einen Objektverweis in der Objekteigenschaft des Alter Befehls angeben. Jeder Objektverweis enthält die Objektbezeichner, die zum eindeutigen Identifizieren des Objekts für den Alter Befehl erforderlich sind. Weitere Informationen zu Objektverweise finden Sie unter Definieren und Identifizieren von Objekten (XMLA).

Sie müssen z. B. einen Objektverweis auf einen Cube angeben, 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).

Wenn Sie das AllowCreate Attribut des Alter Befehls 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 noch nicht 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 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 kleinere Objekte, die dem Hauptobjekt zugeordnet sind, unberührt.

Um kleinere Objekte 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 kein Nebenobjekt enthält, das im Hauptobjekt enthalten ist, wird das nicht enthaltene Nebenobjekt gelöscht.

Ändern von Sitzungsobjekten

Um sitzungsobjekte zu ändern, die Create vom Befehl erstellt wurden, legen Sie das Scope Attribut des Alter Befehls auf "Session" fest.

Hinweis

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

Erstellen oder Ändern untergeordneter Objekte

Obwohl ein Befehl CreateAlter nur ein hauptobjekt ganz oben erstellt oder ändert, kann das erstellte oder geänderte Hauptobjekt 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, und innerhalb der Cubedefinition können ObjectDefinition Sie Measuregruppen für den Cube definieren, 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 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-Beispieldatenbank "Adventure Works DW Multidimensional 2012" verweist.

Programmcode

<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 erstellte relationale Datenquelle so geändert, dass das Abfragetimeout für die Datenquelle auf 30 Sekunden festgelegt wird.

Programmcode

<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 der definierten ObjectDefinitionDatenquelle ausgeschlossen werden. Daher bleiben die Identitätswechselinformationen für diese Datenquelle auf das Dienstkonto festgelegt, wie im ersten Beispiel angegeben.

Siehe auch

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