不用这样写,只写 
Create PROCEDURE  PROD
@S_NAME VARCHAR(5)
AS 
SELECT * FROM TABLE1 WHERE
S_NAME LIKE S_NAME //????就是这里有问题。不知道该怎么弄好。
GO
就行了
关键是你的字符串处理时
如 dim dd as string
   dd="%" & "你的参数" & "%"
这样就行了

解决方案 »

  1.   

    你写LIKE的语法是正确的。但是@S_NAME用在LIKE条件里面应该是一个输入参数,为什么要在声明时声明成输出参数呢,这样是不对了。如果是输出参数一定要负返回值。Create PROCEDURE  PROD (
    @S_NAME VARCHAR(5) )
    AS 
    SELECT * FROM TABLE1 WHERE
    S_NAME LIKE '%'+@S_NAME+'%'
      

  2.   

    你上面的存储过程这样写就行了。
    要注意去掉@S_NAME后面的空格!
      

  3.   

    @s_name 是输入参数时就可以啊 我就这样写的!
      

  4.   

    Create PROCEDURE  PROD
    @S_NAME VARCHAR(5) OUTPUT,
    @S_introduce text oupput
    AS 
    SELECT * FROM TABLE1 WHERE
    S_NAME LIKE '%'+@S_NAME+'%' or
    S_NO like '%'+@S_introduce+'%'    //这里报错。 
    GO
    错误如下:
    错误403:对数据类型而言,运算符无效,运算符为add,类型为text.这是为什么啊?难道text类型不能?
      

  5.   

    text oupput text 好像不能做  output把
      

  6.   

    你的这个为什么都用 ouput 呢?
    为什么不看看我说的那个
    我一直都这么用的
      

  7.   

    楼主 的 没有什么问题牙
    再说 output 也不是不可以的 
    output 也不是是输出参数,既可以输入 也 可以输出的吧!
      

  8.   

    output 只是为了取值而已。:)
    S_introduce like '%'+@S_introduce+'%'    //这里报错。是怎么回事啊?
      

  9.   

    不用output 是一样的出错。郁闷。:)
      

  10.   

    为什么两个条件:
    S_NAME LIKE '%'+@S_NAME+'%' or
    S_introduce like '%'+@S_introduce+'%'    //这里报错。
    就报错呢?
    一个的话可以了。
    S_NAME LIKE '%'+@S_NAME+'%' 
      

  11.   

    Create PROCEDURE  PROD
    @S_NAME VARCHAR(5) OUTPUT
    AS 
    SET @S_NAME = '%' + @S_NAME + '%'
    SELECT * FROM TABLE1 WHERE
    S_NAME LIKE S_NAME
    GO
      

  12.   

    Create PROCEDURE  PROD
    @S_NAME VARCHAR(5) OUTPUT
    AS 
    SET @S_NAME = '%' + @S_NAME + '%'
    SELECT * FROM TABLE1 WHERE
    S_NAME LIKE @S_NAME
    GO
      

  13.   

    感谢楼上的几位参与和帮助。但是问题还没有解决啊。
    另外就是,多条件查询时输入的变量间是用空格隔开吗?
    比如:
    DBSP.CommandText="Exec complex_query "
    +"'"+dtInfTime+"' "
    +"'"+this.TextBox_inf_subject.Text.Trim()+"' "
    +"'"+this.TextBox_inf_key.Text.Trim()+"' "
    +"'"+this.TextBox_recorder.Text.Trim()+"' "
    +"'"+dtRecordTime+"' "
    +"'"+this.TextBox_inf_id.Text.Trim()+"'";
    DBSP.Connection.Open();
    DBSP.ExecuteReader();
      

  14.   

    ????
    现在的人呀,我的程序用多少年都没错,为什么不考虑呢?
    Create PROCEDURE  PROD
    @S_NAME VARCHAR(5) OUTPUT
    AS 
    SET @S_NAME = '%' + @S_NAME + '%'
    SELECT * FROM TABLE1 WHERE
    S_NAME LIKE @S_NAME
    GO
    这样写也是行的,是动态 SQL 语句 必须得赋值的
    不过我个人认为还是用字符串,即我的那种方法好,不容易出错
      

  15.   

    我的完整代码是:
    CREATE PROCEDURE complex_query
    @inf_time datetime output,
    @subject varchar(50) output,
    @information text output,
    @recorder char(10) output,
    @record_time datetime output,
    @inf_id int  output,
    @inf_temp text
    AS
    set @inf_temp='%'+@information+'%'
    select * from et_inf where
    inf_time=@inf_time or
    subject like '%'+@subject+'%' or
    information like @inf_temp or
    recorder=@recorder or
    record_time=@record_time
    GO