次の方法で共有


メンバーの挿入、更新、および削除 (XMLA)

XML for Analysis (XMLA) の Insert、UpdateDrop コマンドを使用して、書き込み可能ディメンションのメンバーをそれぞれ挿入、更新、または削除できます。 書き込み可能ディメンションの詳細については、「書き込み対応 ディメンション」を参照してください

新しいメンバーの挿入

Insert コマンドは 、書き込み可能ディメンション内の指定した属性に新しいメンバーを挿入します。

Insert コマンドを作成 する前 に、新しいメンバーを挿入するために次の情報を使用できる必要があります。

  • 新しいメンバーを挿入するディメンション。

  • 新しいメンバーを挿入するディメンションの属性。

  • 新しいメンバーの名前。ある場合は、名前の翻訳も含みます。

  • 新しいメンバーのキー。 属性で複合キーを使用する場合は、キーに複数の値が必要になることがあります。

  • ディメンション内で他の属性として実装されていない属性プロパティがあれば、その値。 そのような属性プロパティには、単項演算子、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、およびスキップされたレベルなどがあります。

Insert コマンドは、次の 2 つのプロパティのみを受け取います。

  • Object プロパティ 。メンバーを挿入するディメンションのオブジェクト参照を格納します。 オブジェクト参照には、そのディメンションに関するデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。

  • Attributes プロパティ 。1 つ以上の Attribute 要素を含み、メンバーを挿入する属性を識別します。 各 Attribute 要素は属性を識別し、名前、値、翻訳、単項演算子、カスタム ロールアップ、カスタム ロールアップ プロパティ、および識別された属性に追加される 1 つのメンバーのスキップされたレベルを提供します。

    注意

    Attribute 要素のすべての プロパティを 含める必要があります。 そうでない場合、エラーが発生する可能性があります。

既存のメンバーの更新

Update コマンドは 、書き込み可能ディメンション内の他の属性の他のメンバーとのリレーションシップに基づいて、指定された属性の既存のメンバーを更新します。 Update コマンド は、ディメンションに含まれる階層内の他のレベルにメンバーを移動できます。また、親属性によって定義された親子階層を再構築するために使用できます。

Update コマンドを作成 する前 に、メンバーを更新するために次の情報を使用できる必要があります。

  • 更新する既存のメンバーを含むディメンション。

  • 更新する既存のメンバーを含むディメンションの属性。

  • 既存のメンバーのキー。 属性で複合キーを使用する場合は、キーに複数の値が必要になることがあります。

  • ディメンション内で他の属性として実装されていない属性プロパティがあれば、その値。 そのような属性プロパティには、単項演算子、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、およびスキップされたレベルなどがあります。

Update コマンドは、次の 3 つの必須プロパティのみを受け取る必要があります。

  • Object プロパティ 。メンバーを更新するディメンションのオブジェクト参照を格納します。 オブジェクト参照には、そのディメンションに関するデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。

  • Attributes プロパティ 。1 つ以上の Attribute 要素を含み、メンバーを更新する属性を識別します。 Attribute 要素は属性を識別し、名前、値、翻訳、単項演算子、カスタム ロールアップ、カスタム ロールアップ プロパティ、および識別された属性に対して更新された 1 つのメンバーのスキップされたレベルを提供します。

    注意

    Attribute 要素のすべての プロパティを 含める必要があります。 そうでない場合、エラーが発生する可能性があります。

  • メンバーを更新する属性を制約する 1 つ以上の Attribute 要素を含む Where プロパティ。 Where プロパティは、Update コマンドをメンバーの特定のインスタンスに制限するために重要です。 Where プロパティ 指定されていない場合、特定のメンバーのすべてのインスタンスが更新されます。 たとえば、3 人の顧客について、都市名を Redmond から Bellevue に変更したいとします。 都市名を変更するには、City 属性のメンバーを変更する必要がある Customer 属性の 3 つのメンバーを識別する Where プロパティを指定する必要があります。 この Where プロパティを指定しない場合、都市名が現在 Redmond であるすべての顧客は、 Update コマンドの実行後にベルビューという都市名を持つ可能性があります。

    注意

    新しいメンバーを除き、 Update コマンドは Where 句に含まれていない属性の属性値のみを 更新 できます。 たとえば、ある顧客が更新されている場合には都市名を更新できません。それ以外の場合には、すべての顧客に関して都市名が変更されます。

親階層のメンバーの更新

親属性をサポートするために、 Update コマンドは省略可能な MoveWithDescendantsMovewithDescedants プロパティです。 MoveWithDescendants プロパティを true に設定すると、親メンバーの識別子が変更されると、親メンバーの子孫も親メンバーと一緒に移動する必要があります。 この値が false に設定されている場合は、親メンバーを移動すると、その親メンバーの直接の子孫が親メンバーのあったレベルに昇格します。

親属性のメンバーを更新する場合、 Update コマンドは他の属性のメンバーを更新できません。

既存のメンバーの削除

Drop コマンドを作成 する前 に、削除するメンバーに対して次の情報を使用できる必要があります。

  • 削除する既存のメンバーを含むディメンション。

  • 削除する既存のメンバーを含むディメンションの属性。

  • 削除する既存のメンバーのキー。 属性で複合キーを使用する場合は、キーに複数の値が必要になることがあります。

Drop コマンドは、次の 2 つの必須プロパティのみを受け取る必要があります。

  • Object プロパティ 。メンバーを削除するディメンションのオブジェクト参照を格納します。 オブジェクト参照には、そのディメンションに関するデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。

  • メンバーを削除する属性を制約する 1 つ以上の Attribute 要素を含む Where プロパティ。 Drop コマンドをメンバーの特定のインスタンスに制限するには、Where プロパティが重要です。 Where コマンド 指定しない場合、特定のメンバーのすべてのインスタンスが削除されます。 たとえば、Redmond から 3 人の顧客を削除したいとします。 これらの顧客を削除するには、削除する Customer 属性の 3 つのメンバーを識別する Where プロパティと、3 人の顧客を削除する City 属性の Redmond メンバーを指定する必要があります。 Where プロパティ で City 属性の Redmond メンバーだけが指定されている場合、Redmond に関連付けられているすべての顧客は Drop コマンドによって 削除 されます。 Where プロパティ で Customer 属性の 3 つのメンバーだけが指定されている場合、3 人の顧客は Drop コマンドによって完全に 削除 されます。

    注意

    Drop コマンドに含まれる Attribute 要素には、AttributeName プロパティと Keys プロパティのみを含める必要があります。 そうでない場合、エラーが発生する可能性があります。

親階層のメンバーの削除

DeleteWithDescendants プロパティを設定すると、親メンバーの子孫も親メンバーと一緒に削除する必要があります。 この値が false に設定されている場合は、その親メンバーの直接の子孫が、親メンバーのあったレベルに昇格します。

重要

親メンバーとその子孫の両方を削除するためにユーザーに必要な権限は、親メンバーに対する削除権限だけです。 ユーザーが子孫に対する削除権限を持っている必要はありません。

参照

Drop 要素 (XMLA)
Insert 要素 (XMLA)
Update 要素 (XMLA)
オブジェクトの定義と識別 (XMLA)
Analysis Services での XMLA による開発