相关文章推荐
爱运动的小虾米  ·  python for ...·  1 年前    · 
瘦瘦的刺猬  ·  【Windows】【VS】error ...·  1 年前    · 
腹黑的鸵鸟  ·  WCF异常: 提供的 URI ...·  1 年前    · 
八块腹肌的毛衣  ·  Nodejs ...·  1 年前    · 

本文可帮助你解决尝试在SQL Server Analysis Services中处理数据库或多维数据集时收到错误消息的问题。

原始产品版本: SQL Server
原始 KB 编号: 922673

在SQL Server Analysis Services中,尝试使用 SQL Server Business Intelligence Development Studio 或 SQL Server Management Studio 处理数据库或多维数据集。 但是,进程操作失败,你会收到以下错误消息:

  • 错误消息 1

    OLAP 存储引擎 : 中的错误 无法找到 : 属性键 Table : TableName、Column ColumnName1 : 、Value : Value1。 Table : TableName, Column : ColumnName2, Value: Value2.

  • 错误消息 2

    OLAP 存储引擎中的错误:由于找不到属性键,因此跳过了记录。 属性:维度生成的属性 X:Database 的 DimensionName:DatabaseName、Cube:CubeName、Measure Group:MeasureGroupName、Partition:PartitionName、Record:RecordNumber。

    出现此问题的原因是多维数据集的事实表包含一个或多个包含属性键的记录,而相应的维度表中不存在此属性键。 如果在处理多维数据集之前未处理相应的维度,或者基础表实际上数据不匹配,则可能会发生此行为。 如果消息中的“Value:”字段之后没有数字,则事实数据表必须包含 null 数据。

    若要解决此问题,必须验证数据源是否指向以下位置:

  • 正确的基础数据源实例,例如SQL Server实例。
  • 正确的数据库。
  • 然后,更正包含有问题的属性键的基础记录。 为此,请使用下列方法之一。

    使用现有属性密钥

    通过运行类似于以下语句的语句更新记录以使用现有属性键:

    Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL
    

    匹配事实数据表中的键值

    在维度表中插入其他行,以匹配事实表中的键值。 如果存在 null 值,请使用以下方法之一:

  • 将 null 值替换为实际值。

  • 通过设置UnknownMemberUnknownMemberName和属性,将维度或维度配置为具有未知成员。 可以根据需要使未知成员可见或隐藏。

  • 在“ 更改设置” 对话框中使用以下所有设置:

  • 将属性 KeyErrorAction 设置为 ConvertToUnknown
  • 将属性 NullKeyNotAllowed 设置为 IgnoreErrorReportAndContinue
  • 将属性 NullKeyConvertedtoUnknown 设置为 IgnoreErrorReportAndContinue
  • 单击 “忽略”错误计数
  • 可以在实例范围内设置这些设置,也可以对每个维度使用自定义配置。

    如果要在不更正数据的情况下处理数据库或多维数据集,可以设置错误配置,使进程操作忽略错误。 只有在修复基础数据时,才应将此操作作为临时解决方法。 否则,你可能会收到来自多维表达式的意外结果 (MDX) 查询。 若要忽略错误,请执行以下步骤:

  • “进程数据库 -DatabaseName****”对话框或 “进程多维数据集 -CubeName”对话框中,单击 “更改设置”。
  • “更改设置” 对话框中,单击“ 维度键错误 ”选项卡。
  • 单击 “使用自定义错误配置”。
  • “未找到密钥”列表中,更改报表中的默认值,并继续忽略错误
  • 单击 “忽略”错误计数
  • 单击 “确定 ”关闭 “更改设置” 对话框。
  • 单击 “确定 ”以处理数据库或多维数据集。
  • 此外,可以设置多维数据集或分区的错误配置以忽略错误。 有关详细信息,请参阅 多维数据集、分区和维度处理的错误配置

    此行为是设计使然。