这样写有问题吗/调用总是不成功??
CREATE PROCEDURE Var_BatchStock_2@ME001 CHAR(20),
@ME001_2 CHAR(20),
@LA009 CHAR(1000)
DECLARE
@strSQL varchar(2000)
SET @strSQL=select * from CMSMA WHERE WHERE ((ME001 Between  '+@ME001+' and '+@ME001_2+')  and (LA009 IN ('+@LA009+'))
exec(@strSQL)能帮帮我看看吗?

解决方案 »

  1.   

    WHERE WHERE 
    ===============
    怎么会有两个Where?
      

  2.   

    对我写错了,但是如果 是一个where 也不成功
      

  3.   

    这样还是不行。。
    CREATE PROCEDURE Var_BatchStock_2@ME001 CHAR(20),
    @ME001_2 CHAR(20),
    @LA009 CHAR(1000)
    DECLARE
    @strSQL varchar(2000)
    SET @strSQL='select * from CMSMA WHERE  ((ME001 Between  '+@ME001+' and '+@ME001_2+')  and (LA009 IN ('+@LA009+'))'
    exec(@strSQL)能帮帮我看看吗?
      

  4.   

    拼接好的sql语句里char变量的值在里面没有单引号
    我想问题在这里
      

  5.   

    SET @strSQL='select * from CMSMA WHERE  ((ME001 Between  '+@ME001+' and '+@ME001_2+')  and (LA009 IN ('+@LA009+'))'改為SET @strSQL='select * from CMSMA WHERE  ((ME001 Between  @ME001 and @ME001)  and (LA009 IN @LA009)'
      

  6.   

    select @ME001 = 'aaa'
    select @ME001_2 = 'bbb'
    拼接以后就是这样
    select * from CMSMA WHERE  ((ME001 Between  aaa and bbb)....后面省略
    但问题是@ME001是char类型
    所以这里是不是应该这样
    select * from CMSMA WHERE  ((ME001 Between  'aaa' and 'bbb')....后面省略