ALTER PROCEDURE Tbcompany_get_mailinfo
@ids varchar(500)
ASSELECT name + '[' + sex + ']['+ province + city + ']'+ Company as member  FROM Tbcompany WHERE uid in(@ids)

解决方案 »

  1.   

    exec('select * from t where id in('+@ids+')')
      

  2.   

    ALTER PROCEDURE Tbcompany_get_mailinfo
    @ids varchar(500)
    AS
    exec('SELECT name + ''['' + sex + ''][''+ province + city + '']''+ Company as member  FROM Tbcompany WHERE uid in('+@ids+')')
      

  3.   

    你可以把变量@ids输出来看一下,是什么格式。
    是不是这种格式:10000007,10000010,10000011
      

  4.   

    用SQL语句可以查询出来,同样的参数在存储过程中就不行 
    如:SELECT name + '[' + sex + '][' + province + city + ']' + company AS member
    FROM Tbcompany
    WHERE (uid IN (1000010, 1000007)) 可以查出来在存储过程中查询不出来,狂晕
      

  5.   

    pbsql(风云) 的方法解决了,能说明一下原因吗?
    马上给分
      

  6.   

    构建一个 @sql,用 sp_executesql 执行它.
      

  7.   

    WHERE (uid IN (1000010, 1000007)) 可以查出来,可以理解
    WHERE uid in(@ids) 出不来,因为相当于:WHERE (uid IN ('1000010, 1000007')),当然出不来