CREATE proc yl_StockGSC111@storeCode nvarchar(500)
as
exec('select MDate,StoreCode,GoodsCode,Color,DetailedSize from MainStore
where StoreCode in ('+@storeCode+')')
GO

解决方案 »

  1.   

    可以这样
    exec yl_StockGSC111 '''001'',''002'''
      

  2.   


    Have a try like this:CREATE proc yl_StockGSC111@storeCode nvarchar(500)
    as
    exec('select MDate,StoreCode,GoodsCode,Color,DetailedSize from MainStore
    where StoreCode in ('''+@storeCode+''')'
    GO
      

  3.   

    StoreCode 如果是字符型:CREATE proc yl_StockGSC111
    @storeCode nvarchar(500)
    as
    select MDate,StoreCode,GoodsCode,Color,DetailedSize from MainStore
    where charindex(',' + StoreCode + ',',',' + @storeCode + ',') > 0
    GO如果是数字,则:
    where charindex(',' + cast(StoreCode as varchar) + ',',',' + @storeCode + ',') > 0
      

  4.   

    上面我的写法注意@storeCode传进来需要是'001,002,003,506,980,.'的格式。
      

  5.   

    如是用动态sql实现
    1、参数是'001,002'的格式:
    declare @storeCode nvarchar(500)
    set @storeCode = '001,002'
    print 'select MDate,StoreCode,GoodsCode,Color,DetailedSize from MainStore
    where StoreCode in ('''+ replace(@storeCode,',',''',''') +''')'2、参数是''001','002''的格式:
    declare @storeCode nvarchar(500)
    set @storeCode = '''001'',''002'''
    print 'select MDate,StoreCode,GoodsCode,Color,DetailedSize from MainStore
    where StoreCode in ('+ @storeCode +')'
      

  6.   

    谢谢各位!
     gmlxf(烛光) ,我用你的charindex方法可以,能否给我解释一下其中的参数的意思,谢谢!