Текстовый запрос SSRS: имена переменных должны быть уникальными в пределах пакета запроса или хранимой процедуры - PullRequest
3 голосов
/ 31 мая 2011

Я разрабатываю отчет SSRS 2008, но вместо использования хранимых процедур я хочу использовать все текстовые запросы. Этот отчет работал с хранимыми процедурами, но когда я изменил этот отчет, чтобы использовать ту же логику, но с помощью текстовых запросов, я получил следующую ошибку:

Произошла ошибка во время локальной обработки отчета Не удалось выполнить запрос для набора данных 'BRSR_Totals' Имя переменной '@END_yEAR' уже объявлено. Имена переменных должны быть уникальными в пакете запроса или хранимой процедуре. Операция отменена пользователем.

Проблема в том, что некоторые из моих наборов данных (текстовые запросы) повторно используют одни и те же параметры, и END_YEAR является одним из этих параметров. Как сделать так, чтобы этот отчет работал правильно?

Ответы [ 5 ]

6 голосов
/ 31 мая 2011

Одна область, которую вы можете проверить, это чувствительность к регистру. SSRS чувствителен к регистру при рассмотрении имен параметров, но T-SQL не имеет такой чувствительности к регистру. Посмотрите еще раз на ваш код и убедитесь, что все параметры используют один и тот же регистр.

2 голосов
/ 17 сентября 2011

Я только что решил похожую проблему, используя текстовый запрос для заполнения набора данных.

(Чтобы ответить на предположение о том, что логика должна быть выгружена в хранимую процедуру: в этом случае отчет является настраиваемым отчетом для одного клиента. Запрос будет когда-либо использоваться только в этом отчете и создает несколько предположения о конфигурации клиента, которые не должны быть доступны глобально)

Я получил ту же ошибку при попытке выполнить запрос. Он работал в SQL Server Management Studio и работал в конструкторе запросов в BIDS, но не работал во время выполнения. Проблема оказалась в том, что BIDS добавила параметры в набор данных, на который ссылался этот запрос. Переключение на вкладку «Параметры» в свойствах набора данных показало, что BIDS дублирует параметры, которые я уже добавил ранее. Удаление дубликатов решило мою проблему.

1 голос
/ 11 июня 2014

Я также только что исправил эту проблему в одном из моих запросов. Я использовал текстовый запрос и имел переменные / параметры datetime. SSRS добавил второй набор в параметры для свойств набора данных. Я удалил их, и после этого мой запрос работал нормально, и мой график заполнился.

0 голосов
/ 17 августа 2017

Убедитесь, что вы не объявляли его дважды, один раз в создаваемом операторе CREATE PROC, а другой в реальном коде ... Я видел эту проблему при тестировании изменений в коде SP.

0 голосов
/ 26 октября 2016

Я столкнулся с подобной проблемой в отчете, где в начале я объявил значительное количество параметров, которые я не хотел, чтобы конечный пользователь видел.У меня возникла проблема: я использовал запятую в начале строки, поэтому у меня было: DECLARE @Parameter VARCHAR (4) = 'text', @Parameter VARCHAR (4) = 'text2' В SSMS все работало нормально,но когда я запустил его в построителе отчетов 3.0, он выдал ошибку, показанную в этой теме.Я изменил его, чтобы удалить запятую и повторить DECLARE в начале каждой строки, и это сработало отлично.

...