本文可帮助你解决尝试在 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 的属性键。 TableName,ColumnName2::,值:Value2。错误消息 2
OLAP 存储引擎中的错误:由于找不到属性键,因此跳过了记录。 属性:维度的生成属性 X: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 值替换为实际值。
通过设置
UnknownMember和UnknownMemberName属性,将维度或维度配置为具有未知成员。 可以根据需求使未知成员可见或隐藏。在“更改设置”对话框中使用以下所有设置:
- 将
KeyErrorAction属性设置为 ConvertToUnknown。 - 将
NullKeyNotAllowed属性设置为 IgnoreError 或 ReportAndContinue。 - 将
NullKeyConvertedtoUnknown属性设置为 IgnoreError 或 ReportAndContinue。 - 单击“ 忽略错误计数”。
可以设置这些设置实例范围,也可以为每个维度使用自定义配置。
- 将
忽略错误
如果要在不更正数据的情况下处理数据库或多维数据集,可以设置进程操作的错误配置以忽略错误。 只有在修复基础数据时,才应将其作为临时解决方法。 否则,可能会收到来自多维表达式 (MDX) 查询的意外结果。 若要忽略错误,请执行以下步骤:
- 在“进程数据库 -DatabaseName****”对话框中或“进程多维数据集 -CubeName****”对话框中,单击“更改设置”。
- 在 “更改设置” 对话框中,单击“ 维度键错误 ”选项卡。
- 单击“ 使用自定义错误配置”。
- 在 “找不到 密钥”列表中,更改报表中的默认值 并继续 忽略 错误。
- 单击“ 忽略错误计数”。
- 单击“确定”关闭“更改设置”对话框。
- 单击“确定”以处理数据库或多维数据集。
此外,还可以设置多维数据集或分区的错误配置以忽略错误。 有关详细信息,请参阅 多维数据集、分区和维度处理的错误配置。
Status
此行为是特意这样设计的。