参数类型是这样的:001,002,003请问  在存储过程中 如何使用这样参数
如传入exec pro_test "001,002,003"执行为select* from test where id=001 or id=002 or id=003 

解决方案 »

  1.   

    exec pro_test "'001','002','003'"
    存储过程这样写
    declare @sql nvarchar(500)
    select @sql='select * from test where id in('+@param+')'
    exec(@sql)
      

  2.   

    改:exec pro_test '''001'',''002'',''003'''
      

  3.   

    create PROCEDURE [pro_test]
    @id .....select * from test where id=@idend但现在参数@id里面存的是 001,002,003  且不知道有多少个,只知道是逗号隔开的想知道存储过程是如何像java一样可以根据逗号截开,然后循环加条件的
      

  4.   


    create proc pro_test
    (@id varchar(200))
    as
    begin
    declare @sql varchar(800)
    set @sql='select * from test where id in('+@id+')'
    print @sql
    endexec pro_test '001,002,003' 
    --执行结果
    select * from test where id in(001,002,003)或者
    exec pro_test '''001'',''002'',''003''' --执行结果
    select * from test where id in('001','002','003')