DECLARE @strYear VARCHAR(4) 
DECLARE @strFirst VARCHAR(7)
DECLARE @strStoreCode VARCHAR(3)
DECLARE @strOutStoreNo VARCHAR(14)SET @strStoreCode = 'jkk'SELECT @strYear = BeginYear FROM MMS_SysStorehouse WHERE StorehouseCode = @strStoreCodeSET @strFirst = @strStoreCode + @strYearSELECT @strOutStoreNo = MAX(OutStoreNo) FROM MMS_SHOutStore WHERE OutStoreNo LIKE ''+ @strFirst +'%'''PRINT @strOutStoreNo
执行是成功的,但却没有打印出查询值我估计应该是
''+ @strFirst +'%'''
上面这段有问题,请大家帮忙看看怎么回事???

解决方案 »

  1.   

    ''+ @strFirst +'%'''
    SQL SERVER引用变量是这样的呀!
      

  2.   

    exec('SELECT '+@strOutStoreNo+' = MAX(OutStoreNo) FROM MMS_SHOutStore WHERE OutStoreNo LIKE '''+ @strFirst +'%'''PRINT @strOutStoreNo
      

  3.   

    DECLARE @strYear VARCHAR(4) 
    DECLARE @strFirst VARCHAR(7)
    DECLARE @strStoreCode VARCHAR(3)
    DECLARE @strOutStoreNo VARCHAR(14)楼主把字符长度定义大一点试一下,再就是:''+ @strFirst +'%''' 这前面加个''这个好像多余了吧
      

  4.   


    显示下列错误:Line 1: Incorrect syntax near '='.
      

  5.   


    if object_id('ta')is not null drop table ta
    go
    create table ta(ID int,Name varchar(10))
    insert ta select   
    1  ,          '面包' union all select 
    2    ,        '衣服1' union all select  
    3    ,        '衣服1asd' 
    declare @str int ,@id varchar(20)
    set @id='衣服1'select @id=max(id) from ta where name like @id+'%'print @id
    (3 行受影响)
    -----
    3
      

  6.   


    if object_id('ta')is not null drop table ta
    go
    create table ta(ID int,Name varchar(10))
    insert ta select   
    1  ,          '面包' union all select 
    2    ,        '衣服1' union all select  
    3    ,        '衣服1asd' 
    declare @str int ,@id varchar(20)
    set @id='衣服1'exec('select '+@id+'=max(id) from ta where name like '''+@id+'%''')print @id   --效果和上面一句一样,都输出衣服1
    -----------
    3(1 行受影响)衣服1