这是可以执行的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'; 结果参数无法传入

解决方案 »

  1.   

    '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')'你要将这种变为一个字符串参数,而不是整个表达式。declare @str varchar(100)
    set @str = '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')'exec Sa_...  '', ... , @str , ...
      

  2.   

    exec Sa_MoveConsi 'linhonghui', ' (Customer.cCusCode >= 2) AND (cItemcode = 1) ', ' ', '(dDate >= ''2011-06-01'') and (dDate <= ''2011-06-30'')', ' ', ' ', '  ', ' ', ' ', ' ', '0'执行SQL时不是变量的2和1去掉2个单引号也能执行
      

  3.   

    exec Sa_MoveConsi 'linhonghui', ' (Customer.cCusCode >= 2) AND (cItemcode = 1) ', ' ', '(dDate >= ''2011-06-01'') and (dDate <= ''2011-06-30'')', ' ', ' ', ' ', ' ', ' ', ' ', '0'这个没有变量参与的表达式!
      

  4.   

    '(dDate >= ''+@begDate+'') and (dDate <= ''+@endDate+'')'而且这种应该为'(dDate >= '''+@begDate+''') and (dDate <= '''+@endDate+''')'
      

  5.   

    这个是在JAVA里面调用的,我干脆把参数放入字符串传入
    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' 附近有语法错误
      

  6.   

    把你的存储过程print 出来看看结果撒
      

  7.   

    declare @str varchar(100)
    set @str = '(dDate >= ''+conveert(varchar,@begDate)+'') and (dDate <= ''+convert(varchar,@endDate)+'')'
    转换下试试
      

  8.   

    改成(dDate >= '2011-06-01') and (dDate <= '2011-07-31')  就可以乐