第一种错误):
ALTER PROCEDURE test
@name char(13)
AS
select * from tblm where tblm_name like '%'+@name+'%'
RETURN (第二种错误):想使用通配符
ALTER PROCEDURE test
@name char(13)
AS
select * from tblm where tblm_name like ''+@name+'%'
RETURN (第三种错误):想连接字符串
ALTER PROCEDURE test
@name char(13)
AS
select * from tblm where tblm_name like ''王'+'+@name+'+'强''
RETURN 

解决方案 »

  1.   

    ALTER PROCEDURE test
    @name char(13)
    @sql varchar(1000)
    AS
    set @sql='select * from tblm where tblm_name='+@name
    exec(@sql)
      

  2.   

    谢谢上边两位老师的指点;
      但是,我将二位的代码复制到sql里边运行, zlp321002(职业-->烧人民币)老师的三个代码全部能运行,但都没有查询结果(我按照输入过的人查找找不到结果,空白结果)。 danielinbiti(金) 老师的代码提示有错误。我初学,找不到错误。
        请老师继续热心指点。看是什么地方出问题了
      

  3.   

    不好意思,写错了
    ALTER PROCEDURE test
    @name char(13)
    AS
    declare @sql varchar(1000) --这里声明
    set @sql='select * from tblm where tblm_name='+@name
    exec(@sql)
      

  4.   

    查不到的原因主要是:
    你定义了一个char(13),这个数据类型是固定了的,你这么定义就可以了。
    第一种错误):
    ALTER PROCEDURE test
    @name varchar(13)
    AS
    exec('select * from tblm where tblm_name like ''%'+@name+'%'' ')
    RETURN (第二种错误):想使用通配符
    ALTER PROCEDURE test
    @name varchar(13)
    AS
    exec('select * from tblm where tblm_name like '''+@name+''%' ')
    RETURN (第三种错误):想连接字符串
    ALTER PROCEDURE test
    @name varchar(13)
    AS
    exec('select * from tblm where tblm_name like ''王'+'+@name+'+'强'' ')
    RETURN 
      

  5.   

    谢谢老师:
      zlp321002(职业-->烧人民币)老师的第一条语句可以运行了。并且效果不错。第二、三条语句有问题,运行出来的结果都是空值。
       danielinbiti(金) 两次指点非常感谢。但是我不明白在我这里为什么运行不出结果。第二次的语句没有错误提示,但运行结果也是空值。
       
       我是初学者,如果学了一段时间,参考老师的指点也能明白一部分。可惜我笨。麻烦老师了。先结分。如果可能的话,请修改语句后继续告诉我。