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