2016-09-25 27 views
-1

私はSQL Serverへの新たなんだとcsvファイルに選択した結果を保存するために、このクエリを記述します。bcp query where where句でエラーが発生するのはなぜですか?

declare @Cycle_ID as int 
set @Cycle_ID = 0 

EXECUTE master.dbo.xp_cmdshell 'bcp "select [Telno],[Cycle],[Price] FROM [ClubEatc].[dbo].[CycleAnalysisTable] where cast([Price] as float)>'+ @Cycle_ID +' " queryout d:\download\behi.csv -t"|" -c -S VM_TAZMINDARAMA -U behzad -P beh1368421' 

where節では、私は単純な変数を書くが、私はこのエラーを取得:

Incorrect syntax near '+'.

してください私の質問を減らさないでください!私は新しい!ありがとう

答えて

0

SQL Serverはexecステートメントの式を認識しません。だから、変数に最初のクエリを設定し、それを使用してみてください:

declare @Cycle_ID as int; 
set @Cycle_ID = 0; 
declare @sql nvarchar(max); 
set @sql = ' 
bcp "select [Telno],[Cycle],[Price] FROM [ClubEatc].[dbo].[CycleAnalysisTable] where cast([Price] as float)>'+ cast(@Cycle_ID as varchar(255)) +' "; 

EXECUTE master.dbo.xp_cmdshell @sql queryout d:\download\behi.csv -t"|" -c -S VM_TAZMINDARAMA -U behzad -P beh1368421'; 

あなたが@Cycle_IDという変数にPriceという列を比較しているように私には好奇心が強いようだが、それは、構文とは何の関係もありません問題。

+0

ありがとう、私は今このエラーが表示されます: –

+0

データ型varcharをfloatに変換中にエラーが発生しました。 –

+0

@behzadrazzaqi。 。 。はい、もちろん。変数は数値として定義されているため、文字列連結に '+'を使用するときは文字列にキャストする必要があります。 –

関連する問題