创建和更改对象 (XMLA)

可以单独创建、更改和删除主要对象。 主要对象包括以下对象:

  • 服务器

  • 数据库

  • 维度

  • 多维数据集

  • 度量值组

  • 分区

  • 透视

  • 挖掘模型

  • 角色

  • 与服务器或数据库关联的命令

  • 数据源

使用 Create 命令在 Microsoft SQL Server SQL Server Analysis Services 实例上创建主对象,并使用 Alter 命令更改实例上的现有主对象。 这两个命令都使用 Execute 方法运行。

创建对象

使用 Create 方法创建对象时,必须先标识包含要创建的SQL Server Analysis Services对象的父对象。 通过在 Create 命令的 ParentObject 属性中提供对象引用来标识父对象。 每个对象引用都包含唯一标识 Create 命令的父对象所需的对象标识符。 有关对象引用的详细信息,请参阅 定义和标识对象 (XMLA)

例如,若要为某一多维数据集创建新的度量值组,则必须提供对该多维数据集的对象引用。 ParentObject 属性中多维数据集的对象引用包含数据库标识符和多维数据集标识符,因为同一多维数据集标识符可能用于其他数据库。

ObjectDefinition 元素包含 Analysis Services 脚本语言 (ASSL) 定义要创建的主要对象的元素。 有关 ASSL 的详细信息,请参阅 使用 Analysis Services 脚本语言进行开发 (ASSL)

如果将 Create 命令的 AllowOverwrite 属性设置为 true,则可以覆盖具有指定标识符的现有主对象。 否则,如果具有指定标识符的主要对象仍存在于父对象中,则会发生错误。

有关 Create 命令的详细信息,请参阅 Create Element (XMLA)

创建会话对象

会话对象是一些临时对象,它们仅可用于客户端应用程序所使用的显式或隐式会话,且在会话结束后会删除这些会话对象。 可以通过将“创建”命令的 Scope 属性设置为“会话”来创建会话对象。

注意

使用 会话 设置时, ObjectDefinition 元素只能包含 DimensionCubeMiningModel ASSL 元素。

更改对象

使用 Alter 方法修改对象时,必须先通过在 Alter 命令的 Object 属性中提供对象引用来标识要修改的对象。 每个对象引用都包含唯一标识 Alter 命令的对象所需的对象标识符。 有关对象引用的详细信息,请参阅 定义和标识对象 (XMLA)

例如,若要修改某一多维数据集的结构,必须提供对该多维数据集的对象引用。 Object 属性中多维数据集的对象引用包含数据库标识符和多维数据集标识符,因为同一多维数据集标识符可能用于其他数据库。

ObjectDefinition 元素包含定义要修改的主要对象的 ASSL 元素。 有关 ASSL 的详细信息,请参阅 使用 Analysis Services 脚本语言进行开发 (ASSL)

如果将 Alter 命令的 AllowCreate 属性设置为 true,则可以创建指定的主对象(如果对象不存在)。 否则,如果指定的主要对象尚不存在,则会出现错误。

使用 ObjectExpansion 属性

如果只更改主对象的属性,并且未重新定义主对象包含的次要对象,则可以将 Alter 命令的 ObjectExpansion 属性设置为 ObjectProperties。 然后 ,ObjectDefinition 属性只需包含主对象的属性的元素, Alter 命令将保留与主要对象关联的次要对象。

若要重新定义主要对象的次要对象,必须将 ObjectExpansion 属性设置为 ExpandFull ,并且对象定义必须包含主对象包含的所有次要对象。 如果 Alter 命令的 ObjectDefinition 属性未显式包含主对象包含的次要对象,则会删除未包含的次要对象。

更改会话对象

若要修改 Create 命令创建的会话对象,请将 Alter 命令的 Scope 属性设置为 Session

注意

使用 会话 设置时, ObjectDefinition 元素只能包含 DimensionCubeMiningModel ASSL 元素。

创建或更改从属对象

尽管 CreateAlter 命令只创建或更改一个最顶层的主要对象,但要创建或修改的主要对象可以包含包含在封闭 ObjectDefinition 属性中的定义,这些对象属于它的其他主要对象和次要对象。 例如,如果定义多维数据集,请在 ParentObject 中指定父数据库,在 ObjectDefinition 中的多维数据集定义中,可以定义多维数据集的度量值组,在度量值组中可以为每个度量值组定义分区。 次要对象只能在其所属的主要对象下定义。 有关主要对象和次要对象的详细信息,请参阅 数据库对象 (Analysis Services - 多维数据)

示例

说明

以下示例创建引用 Adventure Works DW 多维 2012 示例 Microsoft SQL Server 数据库的关系数据源。

代码

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

说明

下面的示例对上例中创建的关系数据源进行了更改:将该数据源的查询超时设置为 30 秒。

代码

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

注释

Alter 命令的 ObjectExpansion 属性设置为 ObjectProperties。 此设置允许 ImpersonationInfo 元素(一个次要对象)从 ObjectDefinition 中定义的数据源中排除。 因此,该数据源的模拟信息仍设置为在第一个示例中所指定的服务帐户。

另请参阅

Execute 方法 (XMLA)
使用 Analysis Services 脚本语言 (ASSL) 开发
在 Analysis Services 中使用 XMLA 开发