创建和更改对象 (XMLA)

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

  • 服务器

  • 数据库

  • 尺寸

  • 立方体

  • 度量值组

  • 分区

  • 观点

  • 挖掘模型

  • 角色

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

  • 数据源

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

创建对象

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

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

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

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

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

创建会话对象

会话对象是临时对象,这些对象仅适用于客户端应用程序使用的显式或隐式会话,并在会话结束时被删除。 可以通过将 Scope 命令的属性 Create 设置为 Session 来创建会话对象。

注释

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

更改对象

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

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

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

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

使用 ObjectExpansion 属性

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

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

更改会话对象

若要修改命令创建的Create会话对象,请将ScopeAlter命令的属性设置为“会话”。

注释

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

创建或更改从属对象

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

例子

DESCRIPTION

以下示例创建一个关系数据源,该数据源引用 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>  

DESCRIPTION

以下示例将上一示例中创建的关系数据源更改为将数据源的查询超时设置为 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>  

注释

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

另请参阅

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