为什么我在bcp查询where子句时遇到错误?

时间:2016-09-25 14:40:06

标签: sql-server

我是SQL Server的新手,并将此查询的保存选择结果写入csv文件:

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子句中,我编写了简单变量,但是我收到了这个错误:

  

' +'

附近的语法不正确

请不要减少我的问题!我是新人!感谢

1 个答案:

答案 0 :(得分: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';

我似乎很好奇您将名为Price的列与名为@Cycle_ID的变量进行比较,但这与语法问题无关。