我是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
子句中,我编写了简单变量,但是我收到了这个错误:
' +'
附近的语法不正确
请不要减少我的问题!我是新人!感谢
答案 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
的变量进行比较,但这与语法问题无关。