Съобщения за грешка, когато се опитате да обработите база данни или куб в SQL Server 2005 Analysis Services: "не може да бъде намерен ключът на атрибута" и "записът е пропуснат, защото ключът на атрибута не е намерен"


Симптоми


В услугите за анализ на Microsoft SQL Server 2005 се опитвате да обработвате база данни или куб чрез SQL Server Business Intelligence Development Studio или студио за управление на SQL Server. Обаче операцията на процеса е неуспешна и ще получите следните съобщения за грешка:
Съобщение за грешка 1
Грешки в OLAP мястото за съхранение: не може да се намери ключът на атрибута: таблица: TableName; COLUMN: ColumnName1; Value: стойност1. Таблица: TableName, колона: ColumnName2; Value: стойност2.
Съобщение за грешка 2
Грешки в OLAP мястото за съхранение: записът е пропуснат, защото ключът на атрибута не е намерен. Атрибут: генериран атрибут X на измерение : DimensionName от база данни: DatabaseName, куб: Куба; мерна Група: MeasureGroupName, деление: PartitionName, запис: RecordNumber.

Причина


Този проблем възниква, защото една таблица с факти за куба има един или повече записи, съдържащи атрибутен ключ, и този ключ не съществува в съответната таблица за аналитичност. Този проблем може да възникне, когато не сте обработили съответното измерение, преди да обработвате Куба или когато основните таблици действително имат несъответстващи данни. Ако полето "стойност:" в съобщението няма номер след него, таблицата с факти трябва да съдържа празни данни.

Решение


За да отстраните този проблем, трябва да се уверите, че източникът на данни сочи към следните местоположения:
  • Правилният екземпляр на основния източник на данни, като например екземпляр на SQL Server 2005
  • Правилната база данни.
След това Коригирайте основните записи, които съдържат проблематичния атрибутен ключ. За да направите това, използвайте един от методите по-долу.

Използвайте съществуващ ключ на атрибут

Актуализиране на записите, така че да се използва съществуващ ключ на атрибут, като изпълните декларация, е подобно на следното:
Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

Съответстват на ключовите стойности в таблицата с факти

Вмъкнете допълнителни редове в таблицата измерение, така че да съответстват на ключовите стойности в таблицата с факти. Ако съществуват нулеви стойности, използвайте един от следните методи:
  • Заместете празните стойности с действителните стойности.
  • Конфигуриране на измерение или аналитичности за непознат член чрез задаване на свойствата на UnknownMember и UnknownMemberName . Можете да направите така, че Незнайния член да е видим или скрит в зависимост от нуждите ви. За повече информация как да дефинирате неизвестния член, посетете следния уеб сайт на Microsoft Developer Network (MSDN):
  • Използвайте всички следващи настройки в диалоговия прозорец Промяна на настройките :
    • Задайте свойството KeyErrorAction на ConvertToUnknown.
    • Задайте свойството NullKeyNotAllowed на IgnoreError или ReportAndContinue.
    • Задайте свойството NullKeyConvertedtoUnknown на IgnoreError или ReportAndContinue.
    • Щракнете върху Игнорирай броя на грешките.
    Можете да зададете тези екземпляри по-широки или да използвате конфигурация по избор за всяко измерение.

Игнориране на грешката

Ако искате да обработите базата данни или Куба, без да коригирате данните, можете да зададете конфигурацията на грешката за операцията на процеса, за да игнорирате грешката. Трябва да направите това като временно заобиколно решение, когато фиксирате основните данни. В противен случай може да получите неочаквани резултати от вашите заявки за многомерни изрази (MDX). За да игнорирате грешките, изпълнете следните стъпки:
  1. В диалоговия прозорец база данни на процеса – DatabaseName или раздела за процеса на Куба – Куба щракнете върху Промяна на настройките.
  2. В диалоговия прозорец Промяна на настройките щракнете върху раздела грешки в клавиша за оразмеряване .
  3. Щракнете върху използване на конфигурацията на грешката по избор.
  4. В списъка ключът не е намерен променете стойността по подразбиране от report и продължете да игнорирате грешката.
  5. Щракнете върху Игнорирай броя на грешките.
  6. Щракнете върху OK , за да затворите диалоговия прозорец Промяна на настройките .
  7. Щракнете върху OK , за да обработите базата данни или Куба.
Освен това можете да зададете конфигурацията на грешката за Куба или за дяла, за да игнорирате грешката. За повече информация посетете следния MSDN уеб сайт:

Състоянието


Това поведение е по проект.