创建和更改对象 (XMLA)

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

  • 服务器

  • 数据库

  • 维度

  • 多维数据集

  • 度量值组

  • 分区

  • 透视

  • 挖掘模型

  • 角色

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

  • 数据源

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

创建对象

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

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

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

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

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

创建会话对象

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

注意

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

更改对象

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

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

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

如果将 AllowCreate 命令的 Alter 属性设置为 True,则当指定的主要对象不存在时,会创建该对象。 否则,如果指定的主要对象尚不存在,则会出现错误。

使用 ObjectExpansion 属性

如果仅更改主对象的属性,并且未重新定义主对象包含的次要对象,则可以将命令的 Alter 属性设置为 ObjectExpansionObjectProperties。 这样,ObjectDefinition 属性便只需包含该主要对象的属性的元素,并且 Alter 会将与该主要对象关联的次要对象保持不变。

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

更改会话对象

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

注意

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

创建或更改从属对象

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

示例

说明

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

代码

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

说明

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

代码

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

注释

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

另请参阅

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