Objecten maken en wijzigen (XMLA)

Primaire objecten kunnen onafhankelijk worden gemaakt, gewijzigd en verwijderd. Belangrijke objecten bevatten de volgende objecten:

  • Servers

  • Databases

  • Afmetingen

  • Kubussen

  • Maateenheidgroepen

  • Partitions

  • Vooruitzichten

  • Mijnbouwmodellen

  • Rollen

  • Opdrachten die zijn gekoppeld aan een server of database

  • Gegevensbronnen

U gebruikt de opdracht Maken om een belangrijk object te maken op een exemplaar van Microsoft SQL Server SQL Server Analysis Services en de opdracht Wijzigen om een bestaand hoofdobject op een exemplaar te wijzigen. Beide opdrachten worden uitgevoerd met de methode Execute .

Objecten maken

Wanneer u objecten maakt met behulp van de methode Maken , moet u eerst het bovenliggende object identificeren dat het SQL Server Analysis Services-object bevat dat moet worden gemaakt. U identificeert het bovenliggende object door een objectverwijzing op te geven in de eigenschap ParentObject van de opdracht Maken . Elke objectverwijzing bevat de object-id's die nodig zijn om het bovenliggende object uniek te identificeren voor de opdracht Maken . Zie XmlA (Objecten definiëren en identificeren) voor meer informatie over objectverwijzingen.

U moet bijvoorbeeld een objectverwijzing naar een kubus opgeven om een nieuwe maateenheidgroep voor de kubus te maken. De objectverwijzing voor de kubus in de eigenschap ParentObject bevat zowel een database-id als een kubus-id, omdat dezelfde kubus-id mogelijk voor een andere database kan worden gebruikt.

Het element ObjectDefinition bevat ASSL-elementen (Analysis Services Scripting Language) waarmee het belangrijkste object wordt gedefinieerd dat moet worden gemaakt. Zie Ontwikkelen met Analysis Services Scripting Language (ASSL) voor meer informatie over ASSL.

Als u het kenmerk AllowOverwrite van de opdracht Create instelt op true, kunt u een bestaand hoofdobject met de opgegeven id overschrijven. Anders treedt er een fout op als er al een belangrijk object met de opgegeven identifier bestaat in het bovenliggende object.

Zie Create Element (XMLA) voor meer informatie over de opdracht Maken.

Sessieobjecten maken

Sessieobjecten zijn tijdelijke objecten die alleen beschikbaar zijn voor de expliciete of impliciete sessie die wordt gebruikt door een clienttoepassing en worden verwijderd wanneer de sessie wordt beëindigd. U kunt sessieobjecten maken door het kenmerk Bereik van de opdracht Maken in te stellen op Sessie.

Opmerking

Wanneer u de sessie-instelling gebruikt, kan het element ObjectDefinition alleen assl-elementen dimensie, kubus of miningmodel bevatten.

Objecten wijzigen

Wanneer u objecten wijzigt met behulp van de methode Alter , moet u eerst het object identificeren dat moet worden gewijzigd door een objectverwijzing op te geven in de eigenschap Object van de opdracht Alter . Elke objectverwijzing bevat de object-id's die nodig zijn om het object uniek te identificeren voor de opdracht Alter . Zie XmlA (Objecten definiëren en identificeren) voor meer informatie over objectverwijzingen.

U moet bijvoorbeeld een objectverwijzing naar een kubus opgeven om de structuur van een kubus te wijzigen. De objectverwijzing voor de kubus in de eigenschap Object bevat zowel een database-id als een kubus-id, omdat dezelfde kubus-id mogelijk kan worden gebruikt voor een andere database.

Het element ObjectDefinition bevat ASSL-elementen waarmee het belangrijkste object wordt gedefinieerd dat moet worden gewijzigd. Zie Ontwikkelen met Analysis Services Scripting Language (ASSL) voor meer informatie over ASSL.

Als u het kenmerk AllowCreate van de opdracht Alter instelt op true, kunt u het opgegeven hoofdobject maken als het object niet bestaat. Anders treedt er een fout op als er nog geen opgegeven hoofdobject bestaat.

Het kenmerk ObjectExpansion gebruiken

Als u alleen de eigenschappen van het primaire object wijzigt en geen secundaire objecten opnieuw definieert die zijn opgenomen in het hoofdobject, kunt u het kenmerk ObjectExpansion van de opdracht Alter instellen op ObjectProperties. De eigenschap ObjectDefinition hoeft dan alleen de elementen voor de eigenschappen van het primaire object te bevatten en met de opdracht Alter blijven secundaire objecten gekoppeld aan het primaire object ongewijzigd.

Als u secundaire objecten voor een belangrijk object opnieuw wilt definiëren, moet u het kenmerk ObjectExpansion instellen op ExpandFull en moet de objectdefinitie alle secundaire objecten bevatten die zijn opgenomen in het primaire object. Als de eigenschap ObjectDefinition van de opdracht Alter niet expliciet een secundair object bevat dat is opgenomen in het hoofdobject, wordt het secundaire object dat niet is opgenomen, verwijderd.

Sessieobjecten wijzigen

Als u sessieobjecten wilt wijzigen die zijn gemaakt met de opdracht Maken , stelt u het kenmerk Bereik van de opdracht Wijzigen in op Sessie.

Opmerking

Wanneer u de sessie-instelling gebruikt, kan het element ObjectDefinition alleen assl-elementen dimensie, kubus of miningmodel bevatten.

Onderliggende objecten maken of wijzigen

Hoewel een Maken of Wijzigen opdracht slechts één bovenliggende hoofdobject creëert of wijzigt, kan het hoofdobject dat wordt aangepast definities bevatten binnen de eigenschap ObjectDefinition omsluiten voor andere hoofd- en subobjecten die eronder ondergeschikt zijn. Als u bijvoorbeeld een kubus definieert, geeft u de bovenliggende database op in ParentObject en binnen de kubusdefinitie in ObjectDefinition kunt u maateenheidgroepen voor de kubus definiëren en binnen de maateenheidgroepen kunt u partities definiëren voor elke maateenheidgroep. Een ondergeschikt object kan alleen worden gedefinieerd onder het hoofdobject dat het bevat. Zie Databaseobjecten (Analysis Services - multidimensionale gegevens) voor meer informatie over primaire en secundaire objecten.

Voorbeelden

Description

In het volgende voorbeeld wordt een relationele gegevensbron gemaakt die verwijst naar de Multidimensionale Voorbeelddatabase van Adventure Works DW 2012 van Microsoft SQL Server.

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>  

Description

In het volgende voorbeeld wordt de relationele gegevensbron gewijzigd die in het vorige voorbeeld is gemaakt om de time-out van de query voor de gegevensbron in te stellen op 30 seconden.

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>  

Comments

Het kenmerk ObjectExpansion van de opdracht Alter is ingesteld op ObjectProperties. Met deze instelling kan het element ImpersonationInfo , een secundair object, worden uitgesloten van de gegevensbron die is gedefinieerd in ObjectDefinition. Daarom blijft de imitatie-informatie voor die gegevensbron ingesteld op het serviceaccount, zoals opgegeven in het eerste voorbeeld.

Zie ook

Methode uitvoeren (XMLA)
Ontwikkelen met Analysis Services Scripting Language (ASSL)
Ontwikkelen met XMLA in Analysis Services