CREATE PROC dt_cat
(
@category varchar(128),
)
as
BEGIN
SET  NOCOUNT  ON exec ('select o.id,o.userName,o.p_z_Z_Subject,o.imgProductId,o.productCatId,o.postDate,o.status,m.memberType,m.memberIndex,m.companyName,m.province,m.city,m.comeDate,m.endDate from offer o,member m where m.username=o.username and o.status = 'Y'  and o.productCatid in (' + @category + ') order by o.postDate desc')SET  NOCOUNT  OFF
end
GO

解决方案 »

  1.   

    productCatid 是整型, @category varchar(128).
    单个参数时, isnumeric(@category) = 1, 可以查出匹配记录.
    多个参数时, isnumeric(@category) = 0, 当然查不到匹配记录.
      

  2.   

    是少了引号的。你相楼上的用exec('')试试
      

  3.   

    exec ('select o.id,o.userName,o.p_z_Z_Subject,o.imgProductId,o.productCatId,o.postDate,o.status,m.memberType,m.memberIndex,m.companyName,m.province,m.city,m.comeDate,m.endDate from offer o,member m where m.username=o.username and o.status = ''Y''  and o.productCatid in (' + @category + ') order by o.postDate desc')
      

  4.   

    in 时需要构建:declare @sql nvarchar(1000)
    set @sql='select * from tb where id in'+@category+''
    exec(@sql)
      

  5.   

    decalre @sql varchar(4000)
    set @sql='
    select o.id,o.userName,o.p_z_Z_Subject,o.imgProductId,o.productCatId,o.postDate,o.status,m.memberType,m.memberIndex,m.companyName,m.province,m.city,m.comeDate,m.endDate from offer o,member m where m.username=o.username and o.status = 'Y'  and o.productCatid in ('+@category+') order by o.postDate desc'
    exec (sql)
      

  6.   

    CREATE PROC dt_trade_offer_cat
    (
    @type varchar(8)
    )
    as
    BEGIN
    SET  NOCOUNT  ON 
    declare @sqlstr varchar(4000)
    set @sqlstr=''
    set @sqlstr='select o.*,m.* from offer o,member m where m.username=o.username and o.p_z_Z_Type = ' + @type + ' order by o.postDate desc'
    exec (@sqlstr)
    SET  NOCOUNT  OFF
    end
    GO
    又在@type这里出错了,我用exec dt_trade_offer_cat "sale"调用,
    提示:
    服务器: 消息 207,级别 16,状态 3,行 1
    列名 'sale' 无效。(所影响的行数为 1 行)
    请各位再帮一下忙,完了就结贴,分不多,也是一份心意
      

  7.   

    set @sqlstr='select o.*,m.* from offer o,member m where m.username=o.username and o.p_z_Z_Type = ''' + @type + ''' order by o.postDate desc'