我一直在工作SSRS報告,以及對我的一個存儲過程,它使用動態SQL suchthat我得到這個錯誤:如何將使用動態SQL的存儲過程轉換爲非動態SQL(SSRS)?
An item with the same key has already been added.
所以我GOOGLE了這個錯誤了一點,但它的仍然朦朧到我..
我的存儲過程發生在那些肘杆式幾個參數,如跟隨着:
@CompleteType INT = NULL,
/*
* 0 - Routed
* 1 - Targeted
* 2 - Offerwall
*/
@SourceType BIT = NULL,
/*
* Works if @AccountID is not null
* (should only be used if @AccountID has a single value)
*
* 0 - Owned by @AccountID
* 1 - External (not owned by @AccountID)
*/
@SurveyStatus INT = NULL,
/*
* NULL - All Surveys
* 0 - Completes Approved Surveys
* 1 - Invoiced Surveys
*/
@IsSupplierUser BIT = 0
/*
* used to decide whether to display FEDSurveyName or SupplierSurveyName
在這兩個代碼塊在這裏發生的問題(他們不是連續):
-- Initial Survey Name
IF @IsSupplierUser = 0
SET @SQL += CHAR(13) + CHAR(9) + N' ,ts.FEDSurveyName as ''Initial Survey Name'''
ELSE
SET @SQL += CHAR(13) + CHAR(9) + N' ,ts.SupplierSurveyName as ''Initial Survey Name'''
那麼這一個:
-- Complete Survey Name
IF @IsSupplierUser = 0
SET @SQL += CHAR(13) + CHAR(9) + N' ,cs.FEDSurveyName as ''Complete Survey Name'''
ELSE
SET @SQL += CHAR(13) + CHAR(9) + N' ,cs.SupplierSurveyName as ''Complete Survey Name'''
我們分別既是ts.FEDSurveyName
和cs.FEDSurveyName
,與同爲SupplierSurveyName
。我感謝任何提示!謝謝
正如有人誰在一頂帽子的下降downvotes,我不明白爲什麼這個問題正在downvoted。 – 2013-03-05 02:12:56
到目前爲止,您向我們展示的內容中沒有任何內容會導致該錯誤。在執行它們之前打印出你的'@ SQL'變量,然後在這裏發佈失敗的變量。 – RBarryYoung 2013-03-05 02:19:43
這是因爲在代碼中命名輸出的方式相同,即使在不同的分支中也是如此。看到答案,應該只在設置字段名稱時工作。 – revoua 2013-03-05 02:31:47