如何解决如何在SQL Server 2008中的存储过程中写入游标
仅使用一个简单的UPDATE
语句有什么问题?
UPDATE dbo.Coupon
SET NoofUses = (SELECT COUNT(*) FROM dbo.CouponUse WHERE Couponid = dbo.Coupon.ID)
这就是所有需要的!没有凌乱和复杂的游标,没有循环,没有RBAR(逐行扫描)处理......只是一个漂亮,简单,干净的基于集合的sql语句。
解决方法
我的数据库中有两个表
优惠券表
- id (int)
- Name (nvarchar(max))
- NoofUses (int)
优惠券使用表
- id(int)
- Couponid(int)
- CreateDate(datetime)
每当用户单击优惠券时,都会在CouponUse
表中输入包含该优惠券ID的条目
现在,coupon
表中有一列称为NoofUses
。我想在存储过程中编写一个游标,该存储过程遍历couponuse
表并查看一张优惠券有多少行,并将该数字填入NoofUses
优惠券的字段中。
我有这个查询
select COUNT(*) as totalcount,Name as name from Coupon as coupon
join CouponUse as couponuse on coupon.id = couponuse.couponid
group by couponuse.couponid,coupon.Name
这给了我优惠券的名称及其数量 couponuse
但是我不知道如何使用游标在存储过程中实现它?
您对问题的任何询问将不胜感激,谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。