插入、更新和删除成员 (XMLA)

您可以使用 XML for Analysis (XMLA) 中的 " 插入"、" 更新" 和 "删除" 命令, 分别在启用写功能的维度中插入、更新或删除成员。 有关启用了写功能的维度的详细信息,请参阅 启用写功能的维度

插入新成员

Insert命令将新成员插入到启用写功能的维度中的指定属性。

构造 Insert 命令之前,应为要插入的新成员提供以下信息:

  • 要在其中插入新成员的维度。

  • 要在其中插入新成员的维度特性。

  • 新成员的名称,包括该名称的所有适用翻译。

  • 新成员的键。 如果某特性使用一个组合键,则该键可能需要多个值。

  • 不作为该维度内的其他特性实现的所有适用特性属性的值。 此类特性属性包括一元运算符、翻译、自定义汇总、自定义汇总属性以及已跳过的级别。

Insert命令仅采用两个属性:

  • 对象属性,它包含要在其中插入成员的维度的对象引用。 该对象引用包含维度的数据库标识符、多维数据集标识符和维度标识符。

  • Attributes属性,其中包含一个或多个Attribute元素,用于标识要在其中插入成员的属性。 每个 attribute 元素都标识一个特性,并为要添加到已标识特性的单个成员提供名称、值、翻译、一元运算符、自定义汇总、自定义汇总属性以及已跳过的级别。

    注意

    必须包括 Attribute 元素的所有属性。 否则,可能会出错。

更新现有成员

Update命令会根据与其他属性中其他成员的关系,在启用写功能的维度中更新指定属性中的现有成员。 Update命令可以将成员移到维度所包含层次结构中的其他级别,并可用于重构父属性定义的父子层次结构。

在构造 Update 命令之前,您应该具有以下可供要更新的成员的信息:

  • 要在其中更新现有成员的维度。

  • 要在其中更新现有成员的维度特性。

  • 现有成员的键。 如果某特性使用一个组合键,则该键可能需要多个值。

  • 不作为该维度内的其他特性实现的所有适用特性属性的值。 此类特性属性包括一元运算符、翻译、自定义汇总、自定义汇总属性以及已跳过的级别。

Update命令只使用三个必需的属性:

  • 对象属性,其中包含要在其中更新成员的维度的对象引用。 该对象引用包含维度的数据库标识符、多维数据集标识符和维度标识符。

  • Attributes属性,其中包含一个或多个Attribute元素,用于标识要在其中更新成员的属性。 Attribute元素标识一个属性,并为标识的属性所更新的单个成员提供名称、值、翻译、一元运算符、自定义汇总、自定义汇总属性以及已跳过的级别。

    注意

    必须包括 Attribute 元素的所有属性。 否则,可能会出错。

  • Where属性,其中包含一个或多个属性元素,这些元素限制要在其中更新成员的属性。 Where属性对将Update命令限制为成员的特定实例至关重要。 如果未指定 Where 属性,将更新给定成员的所有实例。 例如,有三个客户,您希望将他们的市县名称从 Redmond 更改为 Bellevue。 若要更改城市名称,您必须提供一个 Where 属性,该属性用于标识 Customer 属性中的三个成员,应在该属性中更改 city 属性中的成员。 如果未提供此 Where 属性,则在运行 Update 命令后,其 City 名称当前为 Redmond 的每个客户都将具有 Bellevue 的城市名称。

    注意

    除了新成员以外, update 命令只能更新 Where 子句中未包含的属性的属性键值。 例如,更新客户时不能更新市县名称;否则,会更改所有客户的市县名称。

更新父特性中的成员

为支持父属性, 更新 命令为可选的 MoveWithDescendantsMovewithDescedants 属性。 如果将 MoveWithDescendants 属性设置为 true,则表示父成员的标识符发生更改时,还应随父成员一起移动父成员的后代。 如果将此值设置为 False,则移动某父成员将导致该父成员的直接后代提升到该父成员先前所处的级别。

更新父属性中的成员时, 更新 命令无法更新其他属性中的成员。

删除现有成员

在构造 Drop 命令之前,您应该具有可用于删除成员的以下信息:

  • 要在其中删除现有成员的维度。

  • 要在其中删除现有成员的维度特性。

  • 要删除的现有成员的键。 如果某特性使用一个组合键,则该键可能需要多个值。

Drop命令仅采用两个必需的属性:

  • 对象属性,其中包含要在其中删除成员的维度的对象引用。 该对象引用包含维度的数据库标识符、多维数据集标识符和维度标识符。

  • Where属性,其中包含一个或多个Attribute元素,用于约束要在其中删除成员的属性。 Where属性对于将Drop命令限制为某个成员的特定实例是至关重要的。 如果未指定 Where 命令,将删除给定成员的所有实例。 例如,您希望从 Redmond 中删除三个客户。 要删除这些客户,您必须提供一个 Where 属性,该属性标识 Customer 属性中要删除的三个成员,以及要从中删除三个客户的 City 属性的 Redmond 成员。 如果 Where 属性仅指定 City 特性的 Redmond 成员,则 Drop 命令将删除与 redmond 关联的每个客户。 如果 Where 属性仅指定 Customer 特性中的三个成员,则 Drop 命令将完全删除这三个客户。

    注意

    Drop命令中包含的Attribute元素必须只包含AttributeName属性和属性。 否则,可能会出错。

删除父特性中的成员

设置 DeleteWithDescendants 属性指示还应使用父成员删除父成员的后代。 如果将此值设置为 False,则父成员的直接后代将提升到该父成员先前所处的级别。

重要

用户只需删除父成员的权限,即可删除父成员及其后代。 用户无需删除后代的权限。

另请参阅

Drop 元素 (XMLA)
Insert 元素 (XMLA)
Update 元素 (XMLA)
定义和标识对象 (XMLA)
在 Analysis Services 中使用 XMLA 开发