答案 0 :(得分:1)
警告信息为:
查找...在缓存引用数据时遇到重复的引用键值。此错误仅在完全缓存模式下发生。删除重复的键值,或将缓存模式更改为PARTIAL或NO_CACHE。"
请确认您在输入和参考表上已连接的列上没有重复值。
如果要在查找表中连接col1
,请运行查询以检查是否存在重复项,例如:
SELECT col1,Count(*) FROM LookupTable
GROUP BY col1
HAVING COUNT(*)>1
类似问题
答案 1 :(得分:0)
检查“查找键”(而不是其各个列成员)上的重复项。以下查询可用于标识重复记录并标识完美的查阅关键字:
select row_number() over(partition by /*LookUp Key*/ [Column1], [Column2], ..., [ColumnN]
order by /*LookUp Key*/ [Column1], [Column2], ..., [ColumnN]
) row_
,*
from [Database].schema.[Reference Table]
--where 1=1
当“ row_”列大于1时,表示您的查阅关键字引用了重复的记录。为了解决此问题,您可以尝试使用其他查找参考数据的查找关键字,或者使用上面的查找关键字的SSIS查找任务中的以下代码获取唯一的引用数据记录:
--Reference data without Lookup key duplicates
with reference_data as (
select [Column1]
,[Column2]
,...
,[ColumnN]
,row_number() over(partition by /*LookUp Key*/partition by /*LookUp Key*/ [Column1], [Column2], ..., [ColumnN]
order by [Reference Data Unique Key] desc
) row_
from [Database].schema.[Reference Table]
)
select [Column1]
,[Column2]
,...
,[ColumnX]
from reference_data
where row_ = 1
通常,查找键(不是组成它的列)必须唯一,以免提示此错误。