次の方法で共有


オブジェクトの作成と変更 (XMLA)

メジャー オブジェクトは、個別に作成、変更、および削除できます。 メジャー オブジェクトには、次のオブジェクトが含まれます。

  • サーバー

  • データベース

  • 次元

  • キューブ

  • 測定グループ

  • パーティション

  • 視点

  • マイニング モデル

  • 役割

  • サーバーまたはデータベースに関連付けられているコマンド

  • データ ソース

Create コマンドを使用して、Microsoft SQL Server Analysis Services のインスタンスにメジャー オブジェクトを作成し、Alter コマンドを使用してインスタンス上の既存のメジャー オブジェクトを変更します。 どちらのコマンドも Execute メソッドを使用して実行されます。

オブジェクトの作成

Create メソッドを使用してオブジェクトを作成する場合は、最初に作成する Analysis Services オブジェクトを含む親オブジェクトを識別する必要があります。 親オブジェクトを識別するには、Create コマンドの ParentObject プロパティにオブジェクト参照を指定します。 各オブジェクト参照には、 Create コマンドの親オブジェクトを一意に識別するために必要なオブジェクト識別子が含まれています。 オブジェクト参照の詳細については、「オブジェクト の定義と識別 (XMLA)」を参照してください。

たとえば、キューブの新しいメジャー グループを作成するには、キューブへのオブジェクト参照を指定する必要があります。 ParentObject プロパティ内のキューブのオブジェクト参照には、データベース識別子とキューブ識別子の両方が含まれています。同じキューブ識別子が別のデータベースで使用される可能性があります。

ObjectDefinition 要素には、作成するメジャー オブジェクトを定義する Analysis Services スクリプト言語 (ASSL) 要素が含まれています。 ASSL の詳細については、「 Analysis Services スクリプト言語 (ASSL) を使用した開発」を参照してください。

Create コマンドのAllowOverwrite属性を true に設定すると、指定した識別子を持つ既存のメジャー オブジェクトを上書きできます。 それ以外の場合、指定した識別子を持つメジャー オブジェクトが親オブジェクトに既に存在する場合、エラーが発生します。

Create コマンドの詳細については、「要素の作成 (XMLA)」を参照してください。

セッション オブジェクトの作成

セッション オブジェクトは、クライアント アプリケーションによって使用される明示的または暗黙的なセッションでのみ使用できる一時オブジェクトであり、セッションが終了すると削除されます。 セッション オブジェクトを作成するには、Create コマンドのScope属性を Session に設定します。

Session 設定を使用する場合、ObjectDefinition要素には DimensionCube、または MiningModel ASSL 要素のみを含めることができます。

オブジェクトの変更

Alter メソッドを使用してオブジェクトを変更する場合は、まず、Alter コマンドの Object プロパティにオブジェクト参照を指定して、変更するオブジェクトを識別する必要があります。 各オブジェクト参照には、 Alter コマンドのオブジェクトを一意に識別するために必要なオブジェクト識別子が含まれています。 オブジェクト参照の詳細については、「オブジェクト の定義と識別 (XMLA)」を参照してください。

たとえば、キューブの構造を変更するには、キューブへのオブジェクト参照を指定する必要があります。 Object プロパティ内のキューブのオブジェクト参照には、データベース識別子とキューブ識別子の両方が含まれています。同じキューブ識別子が別のデータベースで使用される可能性があります。

ObjectDefinition要素には、変更するメジャー オブジェクトを定義する ASSL 要素が含まれています。 ASSL の詳細については、「 Analysis Services スクリプト言語 (ASSL) を使用した開発」を参照してください。

Alter コマンドのAllowCreate属性を true に設定すると、オブジェクトが存在しない場合は、指定したメジャー オブジェクトを作成できます。 それ以外の場合は、指定したメジャー オブジェクトがまだ存在しない場合にエラーが発生します。

ObjectExpansion 属性の使用

メジャー オブジェクトのプロパティのみを変更していて、メジャー オブジェクトに含まれるマイナー オブジェクトを再定義しない場合は、Alter コマンドのObjectExpansion属性を ObjectProperties に設定できます。 ObjectDefinitionプロパティには、メジャー オブジェクトのプロパティの要素のみを含める必要があり、Alter コマンドを実行すると、メジャー オブジェクトに関連付けられたマイナー オブジェクトはそのまま残ります。

メジャー オブジェクトのマイナー オブジェクトを再定義するには、 ObjectExpansion 属性を ExpandFull に設定し、オブジェクト定義に、メジャー オブジェクトに含まれるすべてのマイナー オブジェクトを含める必要があります。 Alter コマンドのObjectDefinition プロパティに、メジャー オブジェクトに含まれるマイナー オブジェクトが明示的に含まれていない場合、含まれていないマイナー オブジェクトは削除されます。

セッション オブジェクトの変更

Create コマンドによって作成されたセッション オブジェクトを変更するには、Alter コマンドのScope属性を Session に設定します。

Session 設定を使用する場合、ObjectDefinition要素には DimensionCube、または MiningModel ASSL 要素のみを含めることができます。

下位オブジェクトの作成または変更

CreateまたはAlterコマンドは最上位の 1 つのメジャー オブジェクトのみを作成または変更しますが、作成または変更されるメジャー オブジェクトには、それに従属する他のメジャー オブジェクトとマイナー オブジェクトの外側のObjectDefinition プロパティ内の定義を含めることができます。 たとえば、キューブを定義する場合は、 ParentObjectで親データベースを指定し、 ObjectDefinition のキューブ定義内でキューブのメジャー グループを定義し、メジャー グループ内で各メジャー グループのパーティションを定義できます。 マイナー オブジェクトは、それを含むメジャー オブジェクトの下でのみ定義できます。 メジャー オブジェクトとマイナー オブジェクトの詳細については、「 データベース オブジェクト (Analysis Services - 多次元データ)」を参照してください。

例示

説明

次の例では、Adventure Works DW 多次元 2012 サンプル Microsoft SQL Server データベースを参照するリレーショナル データ ソースを作成します。

コード

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <ParentObject>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
    </ParentObject>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ImpersonationInfo>  
                <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
            </ImpersonationInfo>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT0S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Create>  

説明

次の例では、前の例で作成したリレーショナル データ ソースを変更して、データ ソースのクエリ タイムアウトを 30 秒に設定します。

コード

<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

コメント

Alter コマンドのObjectExpansion属性が ObjectProperties に設定されました。 この設定により、マイナー オブジェクトである ImpersonationInfo 要素を、 ObjectDefinitionで定義されたデータ ソースから除外できます。 そのため、最初の例で指定されているように、そのデータ ソースの偽装情報はサービス アカウントに設定されたままです。

こちらもご覧ください

Execute メソッド (XMLA)
Analysis Services スクリプト言語 (ASSL) を使用した開発
Analysis Services での XMLA を使用した開発