create procfeduer GetAll
@id varchar(20)='%20%'
as
select * from name where num like @id
go
execute GetAll调用这个存储过程的时候怎么动态使用@id啊?,这个不是在变量中写死了是20的吗?要怎么做啊?
求教存储过程中使用like 的方法

解决方案 »

  1.   

    create procfeduer GetAll
    @id varchar(20)='20'
    as
    select * from name where num like '%'+@id+'%'
    go
      

  2.   

    DECLARE @id varchar(20)
    SET @id='''%20%'''PRINT('select * from name where num like '+@id)/*select * from name where num like '%20%'
      

  3.   


    77的SQL 写的真是牛逼。。
      

  4.   


    create procfeduer GetAll
    @id varchar(20)
    as
    select * from name where num like '%'+@id+'%'
    go
    execute GetAll '20'
    这样是不是就可以了? 20这个变量随便变?
      

  5.   


    这个不是在变量中写死了是20的吗? 
    ------------->这样定义叫做参数的默认值。
    有默认值时,如果在调用时没有赋值,就是用其默认值,
    如果赋值,就使用指定的值,比如execute GetAll '%102%'
      

  6.   


    create proc GetAll
    @id varchar(20)
    as
    declare @sql nvarchar(1000)
    set @sql='select * from name where num like ''%'+@id+'%'''
    exec(@sql)
    go
      

  7.   


    create procfeduer GetAll
    @id varchar(20) --这里不能直接赋值,声明一个变量就行了
    as
    select * from name where num like '%'+@id+'%' --用like要加上%,这里是找出包含@id的字段
    go--执行存储过程
    execute GetAll 20 --存储过程后面跟变量@id的值
      

  8.   

    create procfeduer GetAll
    @id varchar(20)='20'
    as
    select * from name where num like '%'+@id+'%'
    go
      

  9.   

    --法一:
    create procfeduer GetAll
    @id varchar(20)='%20%'
    as
    select * from name where num like @id
    go
    --默认值方式:
    execute GetAll
    --指定参数值方式:
    execute GetAll '%120%'--法二:
    create procfeduer GetAll
    @id varchar(20)='20'
    as
    select * from name where num like '%'+@id+'%'
    go
    --默认值方式:
    execute GetAll 
    --指定参数值方式:
    execute GetAll '120'
      

  10.   

    create procfeduer GetAll  楼主关键字错了!if exists(select 1 from sysobjects where name='GetAll')
    drop proc GetAll
    gocreate proc GetAll
    @id varchar(20)
    as
    select * from name where num like @id
    goexec GetAll '%20%'
    go
      

  11.   

    create procfeduer GetAll
    @id varchar(20)
    as
    select * from name where num like @id
    goexecute GetAll '%20%'