2011-05-31 36 views
2

SSRS 2008レポートを作成していますが、ストアドプロシージャを使用する代わりに、すべてのテキストクエリを使用します。このレポートでは、ストアドプロシージャで働いていたが、私は同じロジックを使用するには、このレポートを変更したがテキストクエリを経て、私は次のエラーを得たとき:SSRSテキストクエリ:クエリのバッチまたはストアドプロシージャ内で変数名が一意である必要があります

エラーがローカルレポート処理 クエリの実行中に発生したデータセット「BRSR_Totals」 に失敗しました変数名 '@END_yEAR'はすでに宣言されています。変数名は、クエリ・バッチまたはストアド・プロシージャ内で一意である必要があります。 操作がユーザーによって取り消されました。

私のデータセット(テキストクエリ)の中には同じパラメータを再利用するものがあり、END_YEARはこれらのパラメータの1つです。このレポートを正しく実行させるにはどうすればよいですか?

+0

ちょうど好奇心が強いのですが、なぜあなたはそれを保存されたprocsから外したいのですか?そのSPで管理され、レポート内のすべてがよりよく管理されます。 –

+1

テキストクエリで使用しているコードとパラメータ名を共有します。そこには解決策を見つけるのに役立つものがあります。 –

+0

あなたのテキストに "DECLARE @ END_YEAR"がありますか?それをパラメータとして渡していますか?これにより、「既に宣言されました」というメッセージが表示されます。 – thomasswilliams

答えて

0

私は、保存されたprocsが優れていることに同意します。しかし、私の会社では、ストアドプロシージャをプロダクションに移行することは非常に難しいため、マネージャーはテキストクエリを代わりに使用したいと考えています。

+0

こんにちは@salvationishere問題を解決するために何をしましたか? –

5

大文字と小文字が区別されます。 SSRSでは、パラメータ名を考慮すると大文字と小文字が区別されますが、T-SQLでは大文字と小文字が区別されません。コードをもう一度見て、すべてのパラメータが同じ大文字と小文字を使用していることを確認してください。

+0

ちょうどこのような問題で終わった。明らかに、大文字と小文字を区別しないWindows/SQLは突然SSRSとテキストクエリに関して敏感になります。 – brazilianldsjaguar

2

私はちょうどテキストクエリを使用してデータセットにデータを入力して同様の問題を解決しました。

(論理がストアドプロシージャにロードされないようにするには:この場合、レポートは単一の顧客のカスタムレポートです。このクエリではこのレポートのみが使用され、

クエリを実行しようとしたときに同じエラーが発生しました。 SQL Server Management Studioで動作し、BIDS内のクエリデザイナで動作しましたが、実行時には失敗しました。 問題は、このクエリが参照していたデータセットにパラメータを追加するのに役立ちました。データセットプロパティの[パラメータ]タブに切り替えると、以前に追加したパラメータがBIDSで重複していることがわかりました。二重引用符を削除すると私の問題は解決しました。

1

また、この同じ問題を私の質問の1つで修正しました。私はテキストクエリを使用していて、datetime変数/パラメータを持っていました。 SSRSは、データセットプロパティのパラメータに2番目のセットを追加しました。私はそれらを削除し、その後私のクエリはうまく動いて、グラフにデータが入力されました。

0

私はエンドユーザーには見せたくない冒頭にかなりの数のパラメータを宣言したレポートで同様の問題に遭遇しました。私が持っていた問題は、行頭にカンマを使用していたので、私は持っていた: DECLARE @Parameter VARCHAR(4)= 'text' 、@パラメータVARCHAR(4)= 'text2' SSMSでは、Report Builder 3.0で実行したときに、このスレッドに示されているエラーが発生しました。私はコンマを削除し、各行の始めにDECLAREを書き直すように変更し、それは完全に機能しました。

0

作成したCREATE PROCステートメントで1回、実際のコードで2回宣言していないことを確認してください... SPコードの変更をテスト中にこの問題が発生しました。

関連する問題