create procedure p
@tableName varchar(20), --表名
@colName varchar(10),   --列名
@str varchar(20)        --要搜索的字符串
as
declare @sql nvarchar(200)
set @sql=N'select * from '+@tableName+
         N' where '+@colName+
         N' like ''%''+@str+''%'''
exec sp_executesql @sql,N'@str varchar(20)',@str
go

解决方案 »

  1.   

    where '+@colName+' like ''%''+@str+''%''这句可不可以用一个单独的参数传入呢
      

  2.   

    declare @bb varchar(100)
    select * from tablename where aa like '%'+ @bb +'%'
      

  3.   

    create procedure p
    @tableName varchar(20), --表名
    @colName varchar(10),   --列名
    @str varchar(20)        --要搜索的字符串
    as
    declare @sql nvarchar(200)
    set @sql=N'select * from '+@tableName+
             N' where '+@colName+
             N' like ''%''+@str+''%'''
    exec sp_executesql @sql,N'@str varchar(20)',@str
    goN'到底是什么意思 
    set @sql=select * from '+@tableName+' where '+@colName+' like ''%'+@str+''%''
    我这样写可不可以呀,谢谢了
      

  4.   

    declare @str varchar(20)
    declare @sql varchar(200)
    set @str='鱼'
    set @sql='select * from T_MenuKind where mk_name like ''%'+@str+'%'''
    print @sql
    exec (@sql)
      

  5.   

    N代表一个unicode常量。
    set @sql=select * from '+@tableName+' where '+@colName+' like ''%'+@str+''%''
    =======〉也可以