执行存储过程出现:"不是有效的标识符。"

在存储过程里执行SQL拼接语句 

delcare @str varchar(8000) 
select @str = 'select t_m.Mid AS mid,t_m.CertificateNO as CertificateNO,t_m.MalePid as MalePid ,
 (select Pname from t_persons where pid = t_m.MalePid) as MalePName,
 t_m.FemalePid as FemalePid ,(select Pname from t_persons where pid = t_m.FemalePid) as FemalePName,
 case when (tr_m.MarriageVenue <> t_m.ReportDeptID and t_m.ReportDeptID like '''+@StatVenue+''') then ''是'' else ''否'' end as IsDepart,
 (select VenueName from t_venues where venueCode = t_m.ReportDeptID) as ReportDeptID,
 case when (t_m.ReportDeptID not like '''+@StatVenue+''' and tr_m.MarriageVenue like '''+@StatVenue+''') then ''是'' else ''否'' end as IsDiffReport ,
 (select MarriageTimesName from c_MarriageTimes where MarriageTimesID=t_m.MaleMarriageTimesID) as MaleMarriageTimesID,
 (select MarriageTimesName from c_MarriageTimes where MarriageTimesID=t_m.FemaleMarriageTimesID) as FemaleMarriageTimesID,
 (select CONVERT(varchar(11) ,t_m.MarriageDate,120)) as MarriageDate,(select CONVERT(varchar(11) ,t_m.ReportDate,120)) as ReportDate,
 (select SettleTypeName from dbo.c_SettleType where SettleTypeID=t_m.SettleTypeID) as SettleTypeID,
 (select MarriageTypeName from dbo.c_MarriageType where MarriageTypeID = t_m.MarriageTypeID) as MarriageTypeID,
 (select CONVERT(varchar(11) ,t_m.EndDate,120)) as EndDate,
 (select EndReasonName from c_MarriageEndReason where EndReasonID=t_m.EndReasonID) as EndReasonID into #marriage_temp
 from t_Marriage as t_m LEFT OUTER JOIN tr_MarriageVenue as tr_m on t_m.mid = tr_m.mid
where ((tr_m.MarriageVenue like '''+@StatVenue+''' and '+str(@ResideType)+' = 1)       
 or (t_m.ReportDeptID like '''+@StatVenue+''' and '+str(@ResideType)+' = 2)        
 or ((t_m.ReportDeptID like '''+@StatVenue+''' or tr_m.MarriageVenue like '''+@StatVenue+''')))'

 print @str
--本地居住--本地上报
 exec @str  --这样会出现异常 :"不是有效的标识符。" 

 应改为 exec(@str)  就可以了.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值