2011-05-31 21 views
2

我正在開發SSRS 2008報告,但我不想使用存儲過程,而是使用所有文本查詢。該報告在存儲過程的工作,但是當我改變了這個報告中使用同樣的邏輯,而是通過文本查詢,我得到了以下錯誤:SSRS文本查詢:變量名稱在查詢批處理或存儲過程中必須是唯一的

本地報表處理過程中出現錯誤 查詢執行失敗爲數據集「BRSR_Totals」 變量名稱'@END_yEAR'已經被聲明。變量名稱在查詢批處理或存儲過程中必須是唯一的。 操作被用戶取消。

問題是我的一些數據集(文本查詢)重複使用相同的參數,而END_YEAR是其中一個參數。我如何使這個報告正確運行?

+0

只是爲了好奇,爲什麼你想要它存儲的特效?它更好地在SP中進行管理,然後在報告中進行全部管理... – 2011-05-31 15:09:53

+1

分享您在文本查詢中使用的代碼以及參數名稱。那裏可能有些東西會幫助我們找到解決方案。 – 2011-05-31 16:11:07

+0

你在文本中是否有「DECLARE @END_YEAR」,並且將它作爲參數傳入?這將導致「已經宣佈」的消息。 – thomasswilliams 2011-06-01 05:55:30

回答

0

我同意存儲的特效更好。但是因爲在我的公司,將存儲的procs轉移到生產中非常困難,我的經理希望我使用文本查詢。

+0

嗨@salvationishere你做了什麼來解決這個問題? – 2016-01-05 13:33:08

5

您可能要檢查的一個區域是區分大小寫。考慮參數名稱時,SSRS區分大小寫,但T-SQL不具有該區分大小寫。再看看你的代碼,並確保所有參數都使用相同的大小寫。

+0

剛剛完成了這樣的問題。顯然,通常不區分大小寫的Windows/SQL在SSRS和文本查詢方面突然變得敏感。 – brazilianldsjaguar 2013-09-11 19:04:22

2

我剛剛解決了類似的問題,使用文本查詢來填充數據集。

(爲了迴應關於將邏輯卸載到存儲過程中的建議:在這種情況下,報告是針對單個客戶的自定義報告。該查詢只會用於此報告中,並會生成關於客戶配置的一些假設不應該在全球範圍內提供)

我在嘗試執行查詢時收到相同的錯誤。它在SQL Server Management Studio中工作,它在BIDS中的查詢設計器中工作,但在運行時失敗。 問題原來是BIDS幫助將參數添加到此查詢引用的數據集中。切換到「數據集屬性」的「參數」選項卡,顯示BIDS已複製了我之前添加的參數。刪除模糊解決了我的問題。

1

我也在我的一個查詢中解決了這個問題。我正在使用文本查詢並具有日期時間變量/參數。 SSRS在數據集屬性的參數中添加了第二組。我刪除了它們,然後我的查詢正常運行,並填充了我的圖表。

0

我在報告中遇到了類似的問題,我在開始時聲明瞭大量的參數,我不想讓最終用戶看到。我遇到的問題是我在行開頭使用逗號,所以我有: DECLARE @Parameter VARCHAR(4)='text' ,@Parameter VARCHAR(4)='text2' 它工作得很好在SSMS中,但是當我在Report Builder 3.0中運行它時,它拋出了此線程中顯示的錯誤。我改變它來刪除逗號,並在每行的開頭重新聲明DECLARE,它完美地工作。

0

檢查你沒有聲明它兩次,一次在你創建的CREATE PROC語句中,另一次在實際的代碼中......我在測試對SP代碼的更改時看到了這個問題。

相關問題