这是可以执行的SQL
exec Sa_MoveConsi 'linhonghui', ' (Customer.cCusCode >= ''1'') AND (cItemcode = ''1'') ', ' ', '(dDate >= ''2011-06-01'') and (dDate <= ''2011-06-30'')', ' ', ' ', ' ', ' ', ' ', ' ', '0'现在,我要把里面的 2 1 2011-06-01 2011-06-30换成参数
DECLARE @cCusCode NVARCHAR(50),@cItemcode NVARCHAR(50),@begDate NVARCHAR(50),@endDate NVARCHAR(50);SET @cCusCode='1';SET @cItemcode='1';SET @begDate='2011-06-01';SET @endDate='2011-07-31';exec Sa_MoveConsignment 'linhonghui', ' (Customer.cCusCode >= ''+@cCusCode+'' ) AND (cItemcode = ''+@cItemcode+'' ) ', ' ', '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')', ' ', ' ', ' ', ' ', ' ', ' ', '0'; 结果参数无法传入
exec Sa_MoveConsi 'linhonghui', ' (Customer.cCusCode >= ''1'') AND (cItemcode = ''1'') ', ' ', '(dDate >= ''2011-06-01'') and (dDate <= ''2011-06-30'')', ' ', ' ', ' ', ' ', ' ', ' ', '0'现在,我要把里面的 2 1 2011-06-01 2011-06-30换成参数
DECLARE @cCusCode NVARCHAR(50),@cItemcode NVARCHAR(50),@begDate NVARCHAR(50),@endDate NVARCHAR(50);SET @cCusCode='1';SET @cItemcode='1';SET @begDate='2011-06-01';SET @endDate='2011-07-31';exec Sa_MoveConsignment 'linhonghui', ' (Customer.cCusCode >= ''+@cCusCode+'' ) AND (cItemcode = ''+@cItemcode+'' ) ', ' ', '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')', ' ', ' ', ' ', ' ', ' ', ' ', '0'; 结果参数无法传入
set @str = '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')'exec Sa_... '', ... , @str , ...
String bl1=" (Customer.cCusCode >= "+cCusCode+") AND (cItemcode = "+cItemcode+") ";String bl2=" (dDate >= ''"+begDate+"'') and (dDate <= ''"+endDate+"'') ";然后执行
exec Sa_MoveConsi 'linhonghui', @a, ' ', @b, ' ', ' ', ' ', ' ', ' ', ' ', '0'
传入的参数是
(Customer.cCusCode >= 1) AND (cItemcode = 1)
(dDate >= ''2011-06-01'') and (dDate <= ''2011-07-31'')
@a正常,@b报错了,提示我'2011' 附近有语法错误
set @str = '(dDate >= ''+conveert(varchar,@begDate)+'') and (dDate <= ''+convert(varchar,@endDate)+'')'
转换下试试