日期:2014-05-18  浏览次数:20492 次

存储过程sql语句拼接

if(@pid=0)
begin
  set @cidV=' and Member_provinceid not in
(1000,1001,1003,1054,1079,1086,1088,1089,1090,1142,1166,1184,1199,1207,1262,1291,1310,1356,1360) '
end
 else
BEGIN
set @cidV='' 
end 
 
SELECT * into #GroupTb from 
(

select member_id,cid,Group_name ,cCompany,Member_groupid,Member_startdate, Member_enddate,
Group_outlay,Group_membertype,Group_term,Group_unit,
Member_provinceid,Member_capitalid 
FROM JOB_Group G RIGHT JOIN JOB_Member M
on G.Group_id=M.Member_groupid
LEFT JOIN JOB_CRM_Client c
on c.comid=M.Member_id
LEFT JOIN JOB_admin a
on a.JOB_id=c.cUser
GROUP BY member_id,cid,cUser,Group_name ,cCompany,Member_groupid,Group_membertype ,Group_outlay,Member_startdate,Member_enddate,Group_term,Group_unit,
Member_provinceid,Member_capitalid
having Group_membertype=2 and datediff(month,Member_enddate,convert(varchar(23),+@Date))=0 
+@cidV+@GetAdminSQL

) t 




消息 245,级别 16,状态 1,过程 proc_CustomerVIP,第 26 行
在将 varchar 值 ' and Member_provinceid not in
(1000,1001,1003,1054,1079,1086,1088,1089,1090,1142,1166,1184,1199,1207,1262,1291,1310,1356,1360) ' 转换成数据类型 int 时失败。


------解决方案--------------------
@cidV 你定义了 int型, 而你副一个不能转换成int型的字符串,所以报错