次の方法で共有


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

XML for Analysis (XMLA) の InsertUpdateDrop コマンドを使用して、書き込み可能ディメンションからメンバーを挿入、更新、または削除することができます。 書き込み可能ディメンションの詳細については、「 Write-Enabled ディメンション」を参照してください。

新しいメンバーの挿入

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

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

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

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

  • 新しいメンバーの名前 (名前に適用可能な翻訳を含む)。

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

  • ディメンション内の他の属性として実装されていない適用可能な属性プロパティの値。 このような属性プロパティには、単項演算、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、スキップされたレベルが含まれます。

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

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

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

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

既存のメンバーの更新

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

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

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

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

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

  • ディメンション内の他の属性として実装されていない適用可能な属性プロパティの値。 このような属性プロパティには、単項演算、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、スキップされたレベルが含まれます。

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

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

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

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

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

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

親属性のメンバーの更新

親属性をサポートするには、 Update コマンドにオプションの MoveWithDescendantsMovewithDescedants プロパティを指定します。 MoveWithDescendants プロパティを true に設定すると、親メンバーの識別子が変更されたときに、親メンバーの子孫も親メンバーと共に移動する必要があることを示します。 この値が false に設定されている場合、親メンバーを移動すると、その親メンバーの直下の子孫が、親メンバーが以前に存在していたレベルに昇格されます。

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

既存のメンバーの削除

Drop コマンドを作成する前に、メンバーを削除するための次の情報が必要です。

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

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

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

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

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

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

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

親属性のメンバーの削除

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

Von Bedeutung

ユーザーは、親メンバーとその子孫の両方を削除するために、親メンバーの削除アクセス許可のみを持っている必要があります。 ユーザーは子孫に対する削除アクセス許可を必要としません。

こちらもご覧ください

Drop 要素 (XMLA)
Insert 要素 (XMLA)
Update 要素 (XMLA)
オブジェクトの定義と識別 (XMLA)
Analysis Services での XMLA を使用した開発