我在存储过程中是这样写的
declare @a varchar(50)  /*定义的变量*/
然后是从数据库中提取一个记录放到@a 中,我想先去掉@a中空格符(前后都去掉)
在执行下面的语句
     where page like ' % @a % '    /*我想模糊查询*/
可是不好用
请指教!!!!

解决方案 »

  1.   

    参数输出???-- 参数输出declare @sql nvarchar(4000),
            @a int,
            @b int
    set @sql='select @aout=count(*),@bout=count(*) from master..sysdatabases'
    exec sp_executesql @sql,N'@aout int output,@bout int output',@a output,@b output
    print @a
    print @b
      

  2.   

    不是输出
    源代码如下
              update mainsite 
                  set site=@a
                  where page like '%@a%'
    site是mainsite中的一个字段,page也是
      

  3.   

    这个SQL语句本来就有问题,你这样写不但不能赋值,就是查询表达式也有问题,变量不能放在''号内,必须用连接符分开, 去空格也有一个现成的函数
      

  4.   

    就是想查询字段page中有包括@a的
    就把site里的内容修改成@a
      

  5.   

    我想先去掉@a中空格符(前后都去掉)
              
    update mainsite 
    set site=ltrim(rtrim(@a))
    where page like '%@a%'
      

  6.   

    where page like '%@a%'
    这句好像有问题啊
      

  7.   

    where  page like '%'+ ltrim(rtrim(@a)) +'%'
      

  8.   

    create table mainsite(site varchar(100),page varchar(100))
    insert mainsite select 'abc','dddefg'
    insert mainsite select '129','abc'
    insert mainsite select '489','dde'
    select * from mainsite
    gocreate proc ptest
        @a varchar(100)
    as
    begin 
        exec('update mainsite set site=ltrim(rtrim(''' + @a + ''')) where page like ''%' + @a + '%''')
    end
    goexec ptest 'dde'
    select * from mainsite
    godrop proc ptest
    drop table mainsite
    go