XML for Analysis (XMLA) の Insert、 Update、 Drop コマンドを使用して、書き込み可能ディメンションからメンバーを挿入、更新、または削除することができます。 書き込み可能ディメンションの詳細については、「 Write-Enabled ディメンション」を参照してください。
新しいメンバーの挿入
Insert コマンドは、書き込み可能ディメンションの指定した属性に新しいメンバーを挿入します。
Insert コマンドを作成する前に、新しいメンバーを挿入するための次の情報が必要です。
新しいメンバーを挿入するディメンション。
新しいメンバーを挿入するディメンション属性。
新しいメンバーの名前 (名前に適用可能な翻訳を含む)。
新しいメンバーのキー。 属性で複合キーを使用する場合、キーに複数の値が必要になる場合があります。
ディメンション内の他の属性として実装されていない適用可能な属性プロパティの値。 このような属性プロパティには、単項演算、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、スキップされたレベルが含まれます。
Insert コマンドは、次の 2 つのプロパティのみを受け取ります。
Object プロパティ。メンバーを挿入するディメンションのオブジェクト参照を格納します。 オブジェクト参照には、ディメンションのデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。
Attributes プロパティ。メンバーを挿入する属性を識別する 1 つ以上の Attribute 要素が含まれています。 各 Attribute 要素は属性を識別し、識別された属性に追加する 1 つのメンバーの名前、値、翻訳、単項演算子、カスタム ロールアップ、カスタム ロールアップ プロパティ、およびスキップされたレベルを提供します。
注
Attribute 要素のすべてのプロパティを含める必要があります。 そうしないと、エラーが発生する可能性があります。
既存のメンバーの更新
Update コマンドは、書き込み可能ディメンションの他の属性内の他のメンバーとのリレーションシップに基づいて、指定された属性の既存のメンバーを更新します。 [更新] コマンドを使用すると、ディメンションに含まれる階層の他のレベルにメンバーを移動でき、親属性によって定義された親子階層を再構築するために使用できます。
Update コマンドを作成する前に、メンバーを更新するための次の情報が必要です。
既存のメンバーを更新するディメンション。
既存のメンバーを更新するディメンション属性。
既存のメンバーのキー。 属性で複合キーを使用する場合、キーに複数の値が必要になる場合があります。
ディメンション内の他の属性として実装されていない適用可能な属性プロパティの値。 このような属性プロパティには、単項演算、翻訳、カスタム ロールアップ、カスタム ロールアップ プロパティ、スキップされたレベルが含まれます。
Update コマンドは、次の 3 つの必須プロパティのみを受け取ります。
Object プロパティは、メンバーを更新するディメンションのオブジェクト参照を格納するものです。 オブジェクト参照には、ディメンションのデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。
Attributes プロパティ。メンバーを更新する属性を識別する 1 つ以上の Attribute 要素が含まれています。 Attribute 要素は属性を識別し、名前、値、翻訳、単項演算子、カスタム ロールアップ、カスタム ロールアップ プロパティ、および識別された属性に対して更新された 1 つのメンバーのスキップされたレベルを提供します。
注
Attribute 要素のすべてのプロパティを含める必要があります。 そうしないと、エラーが発生する可能性があります。
Where プロパティ。このプロパティには、メンバーを更新する属性を制約する 1 つ以上の Attribute 要素が含まれます。 Where プロパティは、Update コマンドをメンバーの特定のインスタンスに制限するために重要です。 Where プロパティが指定されていない場合、特定のメンバーのすべてのインスタンスが更新されます。 たとえば、都市名をレドモンドからベルビューに変更する 3 人の顧客がいます。 市区町村名を変更するには、City 属性のメンバーを変更する Customer 属性の 3 つのメンバーを識別する Where プロパティを指定する必要があります。 この Where プロパティを指定しない場合、市区町村名が現在 Redmond であるすべての顧客は 、Update コマンドの実行後に Bellevue の市区町村名を持つことになります。
注
新しいメンバーを除き、 Update コマンドは Where 句に含まれていない属性の属性値のみを更新できます。 たとえば、顧客が更新されたときに市区町村名を更新することはできません。それ以外の場合は、すべての顧客の市区町村名が変更されます。
親属性内のメンバーを更新する
親属性をサポートするには、 Update コマンドにオプションの MoveWithDescendantsMovewithDescedants プロパティを指定します。 MoveWithDescendants プロパティを true に設定すると、親メンバーの識別子が変更されたときに、親メンバーの子孫も親メンバーと共に移動する必要があることを示します。 この値が false に設定されている場合、親メンバーを移動すると、その親メンバーの直下の子孫が、親メンバーが以前に存在していたレベルに昇格されます。
親属性のメンバーを更新する場合、 Update コマンドは他の属性のメンバーを更新できません。
既存のメンバーの削除
Drop コマンドを作成する前に、メンバーを削除するための次の情報が必要です。
既存のメンバーを削除するディメンション。
既存のメンバーを削除するディメンション属性。
削除する既存のメンバーのキー。 属性で複合キーを使用する場合、キーに複数の値が必要になる場合があります。
Drop コマンドは、次の 2 つの必須プロパティのみを受け取ります。
Object プロパティ。メンバーを削除するディメンションのオブジェクト参照を格納します。 オブジェクト参照には、ディメンションのデータベース識別子、キューブ識別子、およびディメンション識別子が含まれます。
Where プロパティ。メンバーを削除する属性を制限する 1 つ以上の属性要素が含まれています。 Where プロパティは、Drop コマンドをメンバーの特定のインスタンスに制限するために重要です。 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 に設定されている場合、親メンバーの直接の子孫は、親メンバーが以前に存在していたレベルに昇格されます。
Important
ユーザーは、親メンバーとその子孫の両方を削除するために、親メンバーの削除アクセス許可のみを持っている必要があります。 ユーザーは子孫に対する削除アクセス許可を必要としません。
こちらもご覧ください
要素の削除 (XMLA)
インサート要素 (XMLA)
Update 要素 (XMLA)
オブジェクトの定義と識別 (XMLA)
Analysis Services での XMLA を使用した開発