微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在SQL Server 2008中的存储过程中写入游标

如何解决如何在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 举报,一经查实,本站将立刻删除。