存储过程就好比是多个SQL语句的组合,不过里面还可以判断等一些操作。是用单独的SQL语句实现不了的。。
楼主的这不对:select   *   from   table   where   lie   like   '@guanjianzi'
@guanjianzi是变量,如果加上单引号。就相当于字符了
应该exec('select   *   from   table   where   lie   like  '+@guanjianzi+''')

解决方案 »

  1.   

    正确应该这样:
    exec ('select * from table where lie like ''%'+@guanjianzi+'%''')
      

  2.   

    存储过程以四种方式返回数据: 输出参数,既可以返回数据(整型值或字符值等),也可以返回游标变量(游标是可以逐行检索的结果集)。
    返回代码,始终是整型值。
    SELECT 语句的结果集,这些语句包含在该存储过程内或该存储过程所调用的任何其它存储过程内。
    可从存储过程外引用的全局游标。 
      

  3.   

    可改用 patindex/charindex
    exec ('select * from table where  like patindex(''%'''+@guanjianzi+'''%'',lie)>0')
      

  4.   

    我们的项目都使用存储过程的,使用sql 可以把你使用asp对数据的处理都放在数据库(需要时)里
    在把这些语句放到存储过程里使用存储过程会有很多好处
      

  5.   

    多上CSDN看贴,对楼主提高比较快,不明时再问大家
      

  6.   

    存储过程
    存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 可以在单个存储过程中执行一系列 SQL 语句。
    可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
    存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。