mssql 2008 游标 临时表 作业批处理失败问题
在项目中,写过一个作业,当订单超过1个小时未支付,则取消订单,同时返回订单使用的积分,优惠券,余额。
经过调试发现,作业存储过程中,使用了游标,而且使用了临时表,在游标第一次创建临时表时,没有问题,但是第二次执行再创建,就有问题了,需要判断是否有此临时表,如果有删除,再创建,就没问题了。
--返还使用的优惠券 IF OBJECT_ID('tempdb..#usedcoupon') IS NOT NULL BEGIN DROP TABLE #usedcoupon END SELECT DISTINCT p.orderid , p.CouponsMemberID INTO #usedcoupon FROM orderproduct p ( NOLOCK ) WHERE p.orderid = @cancel_orderid UPDATE m SET Status = 1 , UsedTimes = UsedTimes - 1 , IsUsed = 0 , UsedTime = NULL , UseUserID = NULL , m.OrderID = 0 , m.orderno = '' FROM CouponsMember m ( NOLOCK ) , #usedcoupon c ( NOLOCK ) WHERE c.CouponsMemberID = m.UID
posted on 2016-01-18 15:20 alonelonly 阅读(356) 评论(0) 编辑 收藏 举报