Condividi tramite


Creazione e modifica di oggetti (XMLA)

Gli oggetti principali possono essere creati, modificati ed eliminati in modo indipendente. Di seguito vengono elencati gli oggetti principali:

  • Server

  • Database

  • Dimensioni

  • Cubi

  • Gruppi di misure

  • Partizioni

  • Prospettive

  • Modelli di data mining

  • Ruoli

  • Comandi associati a un server o a un database

  • Origini dati

Usare il comando Create per creare un oggetto principale in un'istanza di Microsoft SQL Server Analysis Services e il comando Alter per modificare un oggetto principale esistente in un'istanza. Entrambi i comandi vengono eseguiti usando il metodo Execute .

Creazione di oggetti

Quando si creano oggetti usando il Create metodo, è prima necessario identificare l'oggetto padre contenente l'oggetto Analysis Services da creare. È possibile identificare l'oggetto padre fornendo un riferimento a un oggetto nella proprietà ParentObject del Create comando. Ogni riferimento all'oggetto contiene gli identificatori dell'oggetto necessari per identificare in modo univoco l'oggetto padre per il comando Create. Per altre informazioni sui riferimenti agli oggetti, vedere Definizione e identificazione di oggetti (XMLA).

Si supponga ad esempio che sia necessario fornire un riferimento a un oggetto per un cubo per creare un nuovo gruppo di misure per il cubo stesso. Il riferimento all'oggetto per il cubo nella proprietà ParentObject contiene sia un identificatore di database che un identificatore del cubo poiché lo stesso identificatore del cubo potrebbe essere utilizzato in un database diverso.

L'elemento ObjectDefinition contiene elementi ASSL (Analysis Services Scripting Language) che definiscono l'oggetto principale da creare. Per altre informazioni su ASSL, vedere Sviluppo con il linguaggio di scripting di Analysis Services (ASSL).

Se si imposta l'attributo AllowOverwrite del comando Create su true, è possibile sovrascrivere un oggetto principale esistente con l'identificatore specificato. In caso contrario, se un oggetto principale con l'identificatore specificato esiste già nell'oggetto padre si verifica un errore.

Per altre informazioni sul comando, vedere Create Element (XMLA).For more information about the Create command, see Create Element (XMLA).

Creazione di oggetti di sessione

Gli oggetti di sessione sono oggetti temporanei disponibili solo nella sessione esplicita o implicita utilizzata da un'applicazione client che vengono eliminati quando la sessione è terminata. È possibile creare oggetti sessione impostando l'attributo ScopeCreate del comando su Sessione.

Nota

Quando si usa l'impostazione Sessione , l'elemento ObjectDefinition può contenere solo elementi Dimension, Cube o MiningModel ASSL.

Modifica di oggetti

Quando si modificano oggetti usando il Alter metodo, è prima necessario identificare l'oggetto da modificare fornendo un riferimento a un oggetto nella proprietà Object del Alter comando. Ogni riferimento all'oggetto contiene gli identificatori dell'oggetto necessari per identificare in modo univoco l'oggetto per il comando Alter. Per altre informazioni sui riferimenti agli oggetti, vedere Definizione e identificazione di oggetti (XMLA).

Si supponga ad esempio che sia necessario fornire un riferimento a un oggetto per un cubo per modificarne la struttura. Il riferimento all'oggetto per il cubo nella proprietà Object contiene sia un identificatore di database che un identificatore del cubo poiché lo stesso identificatore del cubo potrebbe essere utilizzato in un database diverso.

L'elemento ObjectDefinition contiene elementi ASSL che definiscono l'oggetto principale da modificare. Per altre informazioni su ASSL, vedere Sviluppo con il linguaggio di scripting di Analysis Services (ASSL).

Se si imposta l'attributo AllowCreate del comando Alter su true, è possibile creare l'oggetto principale specificato qualora non esista. In caso contrario, se un oggetto principale specificato non esiste si verifica un errore.

Utilizzo dell'attributo ObjectExpansion

Se si modificano solo le proprietà dell'oggetto principale e non si definiscono oggetti secondari contenuti dall'oggetto principale, è possibile impostare l'attributo ObjectExpansion del Alter comando su ObjectProperties. La proprietà ObjectDefinition deve contenere pertanto solo gli elementi per le proprietà dell'oggetto principale e il comando Alter non modifica gli oggetti secondari associati all'oggetto principale.

Per ridefinire gli oggetti secondari per un oggetto principale, è necessario impostare l'attributo ObjectExpansion su ExpandFull e la definizione dell'oggetto deve includere tutti gli oggetti secondari contenuti dall'oggetto principale. Se la proprietà ObjectDefinition del comando Alter non include in modo esplicito un oggetto secondario contenuto in quello principale, l'oggetto secondario non incluso viene eliminato.

Modifica di oggetti di sessione

Per modificare gli oggetti sessione creati dal Create comando, impostare l'attributo ScopeAlter del comando su Sessione.

Nota

Quando si usa l'impostazione Sessione , l'elemento ObjectDefinition può contenere solo elementi Dimension, Cube o MiningModel ASSL.

Creazione o modifica di oggetti subordinati

Sebbene un comando Create o Alter crei o modifichi solo un oggetto principale di livello superiore, l'oggetto principale creato o modificato può includere nella proprietà ObjectDefinition che lo contiene definizioni per altri oggetti principali e secondari subordinati. Se si definisce un cubo, ad esempio, si specifica innanzitutto il database padre in ParentObject, quindi nella definizione del cubo in ObjectDefinition è possibile definire gruppi di misure per il cubo e nei gruppi di misure è possibile definire partizioni per ogni gruppo. Un oggetto secondario può essere definito solo sotto l'oggetto principale che lo contiene. Per altre informazioni sugli oggetti principali e secondari, vedere Oggetti di database (Analysis Services - Dati multidimensionali).

Esempi

Descrizione

Nell'esempio seguente viene creata un'origine dati relazionale che fa riferimento al database Microsoft SQL Server di esempio Adventure Works DW multidimensionale 2012.

Codice

<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>  

Descrizione

Nell'esempio seguente viene modificata l'origine dati relazionale creata nell'esempio precedente per impostare il timeout per la query per l'origine dati su 30 secondi.

Codice

<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>  

Commenti

L'attributo ObjectExpansionAlter del comando è stato impostato su ObjectProperties. Questa impostazione consente all'elemento ImpersonationInfo , un oggetto secondario, di essere escluso dall'origine dati definita in ObjectDefinition. Le impostazioni di rappresentazione per tale origine dati rimangono pertanto configurate sull'account del servizio, come specificato nel primo esempio.

Vedere anche

Metodo Execute (XMLA)
Sviluppo con Analysis Services Scripting Language (ASSL)
Sviluppo con XMLA in Analysis Services