SSRS上传存储过程报错:An item with the same key has already been added
解决Report Builder存储过程上传报错“An item with the same key has already been added”的排查步骤
一、优先排查存储过程本身
- 执行存储过程后检查返回结果集,确认是否存在重复列名(含大小写不同但Report Builder判定为重复的列,如
ID和id)。SQL允许结果集有重复列,但Report Builder对列名唯一性要求严格,这是最常见的触发原因。 - 避免使用
SELECT *写法,关联多表时显式指定列名,给重复字段加别名(比如a.Location AS LocationA, b.Location AS LocationB)。 - 检查存储过程是否返回多个结果集,若不同结果集存在同名列,Report Builder合并列定义时会触发键重复错误。
二、检查旧报表的配置冲突
- 清理原报表中冗余的数据集、参数:原报表的5个独立查询可能存在同名参数(如
@Location)或数据集名称,未删除干净会和新数据集的键冲突。 - 移除旧报表中与新数据集重名的字段、参数后,重新导入存储过程生成数据集。
三、通过隔离测试定位问题
- 新建空白报表,仅导入该存储过程生成数据集。若报错消失,说明问题源于旧报表的配置冲突;若仍报错,可确定是存储过程的结果集存在重复键。
内容的提问来源于stack exchange,提问作者WoodrowWims
相关产品推荐
相关产品推荐

