ALTER    PROCEDURE dbo.sp_select
(
@p Varchar(255)
)
as
   select g.w ,c.t
   from g, c
   where g.p like @p+'%' and c.p like @p+'%'

解决方案 »

  1.   

    ALTER    PROCEDURE dbo.sp_select
    (
    @p char(7)='%'
    )
    as
       declare @sql varchar(8000)
       set @sql='
       select g.w ,c.t
       from g, c
       where g.p like ''%'+@p + '%'' and c.p like ''%' + @p + '%'''
      exec(@sql)
      

  2.   

    p必须指定为varchar型,这样可以使p接受到的值没有尾随空格.
      

  3.   

    还是不行啊。
    1)我把p指定为varchar型
    2)where g.p like '%'+@p + '%' and c.p like '%' + @p + '%''老样子,不行。
      

  4.   

    to : neu724() 
    下划线也不行啊
      

  5.   

    select g.w ,c.t
       from g, c
       where g.p like '%'+ @p+'%' and c.p like '%'+@p+'%'
      

  6.   

    ALTER    PROCEDURE dbo.sp_select
    (
    @p Varchar(255)
    )
    as
       select g.w ,c.t
       from g, c
       where g.p like '%'+ @p+'%' and c.p like '%'+@p+'%'
    哈哈,帮不了你了
      

  7.   

    我也认为应该写成where g.p like '%'+ @p+'%' and c.p like '%'+@p+'%'
    但试过了,真的不行。巨困惑
      

  8.   

    问题解决了。原来是要去掉空格。
    where g.p like '%'+ trim(@p+)'%' and c.p like '%'+trim(@p)+'%'