この記事は、SQL Server Analysis Service でディメンションを処理するときに発生する問題を解決するのに役立ちます。
元の製品バージョン: SQL Server
元の KB 番号: 2002757
現象
SQL Server Analysis Service では、ディメンションの処理が行われ、次のようなエラー メッセージが表示される場合があります。
OLAP ストレージ エンジンのエラー: テーブル: 'TABLE_NAME'、列: 'ATTRIBUTE_COLUMN_NAME、値: 'ATTRIBUTE_VALUE' の処理中に重複する属性キーが見つかりました。 属性は 'ATTRIBUTENAME' です。
原因
この動作は仕様によるものです。 SQL Server Analysis Services は、処理中に重複する属性キーを検出します。
上記のエラーは、リレーショナル データベースで大文字と小文字が区別され、データ値が大文字と小文字が混在している場合にもトリガーできます。 Analysis Services では、ディメンションとその属性を作成する場合、属性の既定の照合順序では大文字と小文字が区別されません。 既定では、ディメンションには ErrorConfiguration|KeyDuplicate が ReportAndStop に設定されています。 そのため、大文字と小文字が区別されるリレーショナル データベースがあり、たとえば、ディメンションの処理中にデータ値 BOOKNAME Bookname が含まれている場合、データ BOOKNAME が属性キーとして処理された場合、後続の処理は次のエラーで失敗します。
処理時に重複する属性キーが見つかりました: Table: 'TABLE_NAME'、Column: 'ATTRIBUTE_COLUMN_NAME、Value: 'Bookname'。 属性は 'ATTRIBUTENAME' です。
解決方法
ディメンション、ディメンション属性、属性リレーションシップを設計するときは、リレーショナル データ値の重複を確認する必要があります。存在する場合は、次のいずれかの手順を使用して問題に対処します。
オプション 1: データ ソース ビューで名前付きクエリを編集して、目的のケースのデータのみを選択します。
たとえば、名前付きクエリで
UPPERまたはLOWERcase 関数を使用できます。オプション 2: 次のいずれかのオプションを使用して問題を回避できます。
Note
これらのオプションは通常、予期しないデータになる可能性があるため推奨されませんが、トラブルシューティングの目的で使用できます。
KeyDuplicate要素の値を ReportAndContinue に設定し、KeyErrorLimitAction ErrorConfiguration の StopLogging に設定します。
Business Intelligence Development Studio (BIDS) のディメンション エディターを使用して、属性が属するディメンションを開き、ディメンションの Collation プロパティを使用して属性の適切な照合順序を設定します。
Note
これにより、処理が完了すると、ディメンションに重複する属性キー (異なるケース値) が作成されます。