Partilhar via


Criando e alterando objetos (XMLA)

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

  • Servidores

  • Bancos de dados

  • Dimensões

  • Cubos

  • Grupos de medidas

  • Partições

  • Perspectivas

  • Modelos de mineração

  • Funções

  • Comandos associados a um servidor ou banco de dados

  • Fontes de dados

Use o comando Criar para criar um objeto principal em uma instância do Microsoft 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 Create método, primeiro você deve identificar o objeto pai que contém o objeto Analysis Services a ser criado. Identifique o objeto pai fornecendo uma referência de objeto na propriedade ParentObject do Create comando. Cada referência de objeto contém os identificadores de objeto necessários para identificar exclusivamente o objeto pai do Create comando. Para obter mais informações sobre referências de objeto, consulte Definir e identificar objetos (XMLA).

Por exemplo, você deve fornecer uma referência de objeto a um cubo para criar um novo grupo de medidas para o cubo. A referência de objeto para o cubo na ParentObject propriedade 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 o ASSL (Analysis Services Scripting Language).

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

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

Criando objetos de sessão

Objetos de sessão são objetos temporários que estão disponíveis apenas 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 Scope atributo do Create comando como Session.

Observação

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

Alterando objetos

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

Por exemplo, você deve fornecer uma referência de objeto a um cubo para modificar a estrutura de um cubo. A referência de objeto para o cubo na Object propriedade 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 ObjectDefinition elemento contém elementos ASSL que definem o objeto principal a ser modificado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com o ASSL (Analysis Services Scripting Language).

Se você definir o AllowCreate atributo do Alter comando 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 ObjectExpansion atributo do Alter comando como ObjectProperties. Em ObjectDefinition seguida, a propriedade só precisa conter os elementos para as propriedades do objeto principal e o Alter comando deixa objetos secundários associados ao objeto principal intocados.

Para redefinir objetos secundários para um objeto principal, você deve definir o ObjectExpansion atributo como ExpandFull e a definição do objeto deve incluir todos os objetos secundários contidos pelo objeto principal. Se a ObjectDefinition propriedade do Alter comando 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 Create comando, defina o Scope atributo do Alter comando como Session.

Observação

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

Criando ou alterando objetos subordinados

Embora um Create comando ou um Alter comando crie ou altere apenas um objeto principal superior, o objeto principal que está sendo criado ou modificado pode conter definições dentro da propriedade delimitador ObjectDefinition para outros objetos principais e menores que são subordinados a ele. Por exemplo, se você definir um cubo, especifique o banco de dados ParentObjectpai e, dentro da definição de cubo, 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="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>  

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

Comentários

O ObjectExpansion atributo do Alter comando foi definido como ObjectProperties. Essa configuração permite que o elemento ImpersonationInfo , um objeto secundário, seja excluído da fonte de dados definida em ObjectDefinition. Portanto, as informações de representação dessa fonte de dados permanecem definidas para a conta de serviço, conforme especificado no primeiro exemplo.

Consulte Também

Método Execute (XMLA)
Desenvolvendo com o ASSL (Analysis Services Scripting Language)
Desenvolvimento com XMLA em Analysis Services