创建存储过程
create PROCEDURE Select_xs
@学号 char(6)
asselect * from xswhere 学号 like @学号执行存储过程
exec Select_xs '%1%'xs表里有学号包含 1 的
可是执行以后都查找不到高手帮帮忙

解决方案 »

  1.   


    create PROCEDURE Select_xs 
    @学号 char(6) 
    as 
    exec('select * from xswhere 学号 like ''%'+@学号+''%'') 
      

  2.   


    create PROCEDURE Select_xs 
    @学号 char(6) 
    as 
    exec('select * from xswhere 学号 like '''+@学号+'''') 
      

  3.   


    童鞋你的参数定义错了, 不能用char, 应该用varchar或者nvarchar的, CHAR会自动填充空格
    下面这样就可以饿
    if object_id('[xs]') is not null drop table [xs]
    go
    create table [xs]([学号] nvarchar(5))
    insert [xs]
    select 1 union all
    select 1 union all
    select 2 union all
    select 3 union all
    select 4
    go
    create PROCEDURE Select_xs 
    @学号 nvarchar(6) 
    as select * from xs where 学号 like @学号goselect * from xs
    exec Select_xs '%1%'drop procedure Select_xs
    drop table xs--测试结果:
    /*学号    
    ----- 
    1
    1
    2
    3
    4(所影响的行数为 5 行)学号    
    ----- 
    1
    1(所影响的行数为 2 行)*/
      

  4.   

    楼上说的有道理create PROCEDURE Select_xs 
    @学号 nvarchar(100) 
    as 
    exec('select * from xswhere 学号 like '''+@学号+'''') 
      

  5.   

    create PROCEDURE Select_xs 
    @学号 nvarchar(100) 
    as 
    exec('select * from xswhere 学号 like '''+@学号+'''')
      

  6.   

    具体参考 动态SQL基本语法:
    http://blog.csdn.net/fredrickhu/archive/2009/09/21/4574840.aspx