set @sqlString='select * from talb1'
set @condition='where 1=1'
set @sqlString=@sqlString+@conditionprint @sqlString结果@sqlString 还是等于'select * from talb1'

解决方案 »

  1.   

    declare @sqlString varchar(8000),@condition varchar(8000)
    set @sqlString='select * from talb1'
    set @condition=' where 1=1'
    set @sqlString=@sqlString+@conditionprint @sqlString
      

  2.   

    可能是楼主定义的长度不够
    结果:
    select * from talb1 where 1=1
      

  3.   

    @sqlString  长度定义太短了,设长一点
      

  4.   

    declare @sqlString varchar(100),@condition varchar(100)
    set @sqlString='select * from talb1'
    set @condition=' where 1=1'
    set @sqlString=@sqlString+@conditionprint @sqlString select * from talb1where 1=1
      

  5.   

    set @sqlString='select * from talb1' 
    set @condition='where 1=1'   --where前要有空格  set @condition=' where 1=1' 
      

  6.   

    发现原来是因为我定义的是 char, 而不是varchar,多谢提示。还有一个问题,
    我想给一个参数加一个%在后面就像是:@name是传入的一个参数 ,比如说等于‘name1’set @name=@name+'%'结果print @name的结果是: 'name1'%我想要的是 'name1%'
      

  7.   

    declare @name varchar(1000)
    set @name='name1'
    set @name=@name+'%' 
    print @name--结果,没问题啊
    name1%
      

  8.   

    --加引号(')?
    declare @name varchar(1000)
    set @name='name1'
    set @name=''''+@name+'%''' 
    print @name--结果
    'name1%'