select * from tab where a like '%key%' or b like '%key%'or ....

解决方案 »

  1.   

    还有select * from 表
        where 字段 like '_a%'
      

  2.   

    --用存储过程,对于全表模糊查询,最好的还是用全文检索
    create proc p_test
    @tbname sysname,  --要查询的表名
    @str varchar(100)  --要查询的字段的值
    as 
    declare @sql varchar(8000)
    set @sql=''
    select @sql=' and '+name+' like ''%'+@str+'%''' from syscolumns where object_id(@tbname)=id
    set @sql=substring(@sql,6,8000)
    exec('select * from '+@tbname+' where '+@sql)
    go
      

  3.   

    create proc 查表中所有字符列
    @表名 varchar(100),
    @参数 varchar(100)
    as
    declare @a varchar(8000)
    set @a=''
    select @a=@a+'and '+a.name+' like ''%'+@参数+'%'' ' from syscolumns a, systypes b,sysobjects d where a.xtype=b.xusertype and a.id=d.id and d.xtype='U' and d.name=@表名 and b.name like '%char'
    set @a=right(@a,len(@a)-4)exec('select * from '+@表名 +' where '+@a)
    go
      

  4.   

    create proc 查表中所有字符列
    @表名 varchar(100),
    @参数 varchar(100)
    as
    declare @a varchar(8000)
    set @a=''
    select @a=@a+'and '+a.name+' like ''%'+@参数+'%'' ' from syscolumns a, systypes b,sysobjects d where a.xtype=b.xusertype and a.id=d.id and d.xtype='U' and d.name=@表名 and b.name like '%char'
    set @a=right(@a,len(@a)-4)exec('select * from '+@表名 +' where '+@a)
    go