Compartilhar via


Criando e alterando objetos (XMLA)

Os objetos principais podem ser criados, alterados e excluídos de forma independente. Os objetos principais incluem o seguinte:

  • Servidores

  • Bancos de dados

  • Dimensões

  • Cubes

  • Grupos de medidas

  • Partições

  • Perspectivas

  • Modelos de mineração

  • Funções

  • Comandos associados a um servidor ou a um banco de dados

  • Fontes de dados

Use o comando Criar para criar um objeto principal em uma instância do Microsoft SQL Server SQL Server Analysis Services e o comando Alter para alterar um objeto principal existente em uma instância. Ambos os comandos são executados usando o método Execute .

Criando objetos

Ao criar objetos usando o método Create, primeiro você deve identificar o objeto pai que contém o objeto SQL Server Analysis Services a ser criado. Você identifica o objeto pai fornecendo uma referência de objeto na propriedade ParentObject do comando Create . Cada referência de objeto contém os identificadores de objeto necessários para identificar exclusivamente o objeto pai do comando Create . Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).

Por exemplo, você deve fornecer uma referência de objeto a um cubo para criar um grupo de medidas novo para ele. A referência de objeto para o cubo na propriedade ParentObject contém um identificador de banco de dados e um identificador de cubo, pois o mesmo identificador de cubo poderia potencialmente ser usado em um banco de dados diferente.

O elemento ObjectDefinition contém elementos ASSL (Analysis Services Scripting Language) que definem o objeto principal a ser criado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com a ASSL (Linguagem de Script do Analysis Services).

Se você definir o atributo AllowOverwrite do comando Create como true, poderá substituir um objeto principal existente que tenha o identificador especificado. Caso contrário, ocorrerá um erro se um objeto principal com o identificador especificado já existir no objeto pai.

Para obter mais informações sobre o comando Create , consulte Create Element (XMLA).

Criando objetos de sessão

Os objetos de sessão são objetos temporários que só estão disponíveis para a sessão explícita ou implícita usada por um aplicativo cliente e são excluídos quando a sessão é encerrada. Você pode criar objetos de sessão definindo o atributo Escopo do comando Criar para Sessão.

Observação

Ao usar a configuração de Sessão , o elemento ObjectDefinition só pode conter elementos ASSL Dimension, Cube ou MiningModel .

Alterando objetos

Ao modificar objetos usando o método Alter , primeiro você deve identificar o objeto a ser modificado fornecendo uma referência de objeto na propriedade Object do comando Alter . Cada referência de objeto contém os identificadores de objeto necessários para identificar exclusivamente o objeto para o comando Alter . Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).

Por exemplo, você deve fornecer uma referência de objeto a um cubo para modificar a sua estrutura. A referência de objeto para o cubo na propriedade Object contém um identificador de banco de dados e um identificador de cubo, pois o mesmo identificador de cubo poderia potencialmente ser usado em um banco de dados diferente.

O elemento ObjectDefinition contém elementos ASSL que definem o objeto principal a ser modificado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com a ASSL (Linguagem de Script do Analysis Services).

Se você definir o atributo AllowCreate do comando Alter como true, poderá criar o objeto principal especificado se o objeto não existir. Caso contrário, ocorrerá um erro se um objeto principal especificado ainda não existir.

Usando o atributo ObjectExpansion

Se você estiver alterando apenas as propriedades do objeto principal e não estiver redefinindo objetos secundários contidos pelo objeto principal, poderá definir o atributo ObjectExpansion do comando Alter como ObjectProperties. A propriedade ObjectDefinition só precisa conter os elementos para as propriedades do objeto principal e o comando Alter deixa objetos secundários associados ao objeto principal intocados.

Para redefinir objetos secundários para um objeto principal, você deve definir o atributo ObjectExpansion como ExpandFull e a definição de objeto deve incluir todos os objetos secundários contidos pelo objeto principal. Se a propriedade ObjectDefinition do comando Alter não incluir explicitamente um objeto secundário contido pelo objeto principal, o objeto secundário que não foi incluído será excluído.

Alterando objetos de sessão

Para modificar objetos de sessão criados pelo comando Criar , defina o atributo Escopo do comando Alter como Sessão.

Observação

Ao usar a configuração de Sessão , o elemento ObjectDefinition só pode conter elementos ASSL Dimension, Cube ou MiningModel .

Criando ou alterando objetos subordinados

Embora um comando Create ou Alter crie ou altere apenas um objeto principal superior, o objeto principal que está sendo criado ou modificado pode conter definições dentro da propriedade ObjectDefinition que inclui outros objetos principais e menores subordinados a ele. Por exemplo, se você definir um cubo, especificar o banco de dados pai no ParentObject e, dentro da definição de cubo em ObjectDefinition , poderá definir grupos de medidas para o cubo e, dentro dos grupos de medidas, poderá definir partições para cada grupo de medidas. Um objeto secundário só pode ser definido sob o objeto principal que o contém. Para obter mais informações sobre objetos principais e menores, consulte Objetos de Banco de Dados (Analysis Services – Dados Multidimensionais).

Exemplos

Descrição

O exemplo a seguir cria uma fonte de dados relacional que faz referência ao banco de dados microsoft SQL Server de exemplo do Adventure Works DW Multidimensional 2012.

Código

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

Descrição

O exemplo a seguir altera a fonte de dados relacional criada no exemplo anterior para definir o tempo limite da consulta para a fonte de dados como 30 segundos.

Código

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

Comentários

O atributo ObjectExpansion do comando Alter foi definido como ObjectProperties. Essa configuração permite que o elemento ImpersonationInfo , um objeto menor, seja excluído da fonte de dados definida em ObjectDefinition. Dessa forma, a informações de representação para aquela fonte de dados permanece definida para a conta de serviço, como especificado no primeiro exemplo.

Consulte Também

Método Execute (XMLA)
Desenvolvendo com ASSL (linguagem de script do Analysis Services)
Desenvolvendo com XMLA no Analysis Services