2017-02-16 1 views
0

これはかなり単純ですが、SPの経験は非常に限られています。SET変数をストアドプロシージャに渡す

私は現在、SPに渡そうとしているかなり長いクエリを持っています。私は多くの運がなかったので、セクションに分割して、次の部分に固執しています。

ALTER PROCEDURE [dbo].[Exchange Rate] (@CCY char (3)) 

EXEC(' 

DECLARE @CurConv float 

SET @CurConv = (Select XRATE FROM CURRENCY.dbo.currfx where CODE = ' + @CCY + ') 

') END 

私は入れませんエラーは次のとおりです。

Msg 207, Level 16, State 1, Line 5 
Invalid column name 'GBP'. 

問題はGBPが列の値ではないでしょうか?どんな助けでも大歓迎です。あなたの動的なクエリが実行されている

おかげ

+0

CURRENCY.dbo.currfx FROM 選択@CurConv = XRATEフロート@CurConvデータベースの種類は何ですか? – patrick

+0

なぜ動的SQLを使用していますか? –

+0

結果をExcelに渡すので – Carlos80

答えて

4

SET @CurConv = (Select XRATE FROM CURRENCY.dbo.currfx where CODE = GBP 

である。しかしあなたは追加の単一引用符で@CCYの値を囲む必要があり

SET @CurConv = (Select XRATE FROM CURRENCY.dbo.currfx where CODE = 'GBP' 

する必要がありますされています

EXEC(' 

DECLARE @CurConv float 

SET @CurConv = (Select XRATE FROM CURRENCY.dbo.currfx where CODE = ''' + @CCY + ''') 

') END 
+0

ありがとうAndy、ちょうど私が必要なもの。 – Carlos80

0

DECLAREは、CODE = @CCY

EXEC所@CurConv

+0

これを試すことができます.. –

関連する問題