在SSRS中,当我正在做一个新的报告时,为什么我会收到错误“已经添加了同一个键的项目”?
我在SSRS
遇到以下错误,现在一直令我困惑:
An error occurred while the query design method was being saved. An item with the same key has already been added
但是,“项目”表示什么? 我什至尝试编辑的RDL
和删除所有引用我需要使用称为prc_RPT_Select_BI_Completes_Data_View
的存储过程。
这可能是因为存储过程使用dynamicSQL( N'
符号)这个事实吗?
在清晨,在存储过程中我有:
SET @SQL + = N'SELECT bi.SupplierID as''Supplier ID'',bi.SupplierName as''Supplier Name''
,bi.PID as ''PID'' ,bi.RespondentID as ''Respondent ID'' ,lk_slt.Name as ''Entry Link Type'' ,ts.SurveyNumber as ''Initial Survey ID'''
看来SSRS有一个问题(至less在2008版) – 我正在研究这个网站,解释它
在哪里说,如果你有两列(从2差异表)具有相同的名称,那么会导致这个问题。
来源:
SELECT a.Field1,a.Field2,a.Field3,b.Field1,b.field99 FROM TableA a JOIN TableB b on a.Field1 = b.Field1
SQL处理它就好了,因为我已经用别名(表)名称作为前缀。 但是,SSRS只使用列名作为键,而不是表+列,所以这是窒息。
修复很简单,可以重命名第二列iebField1 AS Field01,或者只是一起省略这个字段,这就是我所做的。
我过去经历过这个问题。 基于这一点,我可以说,如果你的数据集有多个指向相同字段源的字段名,我们通常会遇到这个问题。 看看下面的post,详细的错误描述
http://www.bi-rootdata.com/2012/09/an-error-occurred-during-report.html
http://www.bi-rootdata.com/2012/09/an-item-with-same-key-has-already-been.html
在你的情况下,你应该检查由sp prc_RPT_Select_BI_Completes_Data_View返回的所有字段名称,并确保所有字段都有唯一的名称。
我刚刚得到这个错误,我才知道这是关于本地variables别名
在存储过程结束时,我喜欢
select @localvariable1,@localvariable2
它在sql中工作正常,但是当我在ssrs中运行它时总是抛出错误,但是在给别名之后,它被修复了
select @localvariable1 as A,@localvariable2 as B