gpt4 book ai didi

sql - 如何在 SQL Server 2008 中的存储过程中编写游标

转载 作者:行者123 更新时间:2023-12-02 04:10:35 25 4
gpt4 key购买 nike

我的数据库中有两个表

优惠券表

  • id(整数)
  • 名称 (nvarchar(max))
  • NoofUses(整数)

优惠券使用表

  • id(整数)
  • 优惠券ID(整数)
  • CreateDate(日期时间)

每当用户点击优惠券时,就会有一个条目进入包含该优惠券 ID 的 CouponUse

现在,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的计数

但我不知道如何使用游标在存储过程中实现它?

您提出的任何问题都将不胜感激,谢谢

最佳答案

尝试以下代码片段。您可以从应用程序中调用以下存储过程,以便更新优惠券表中的 NoOfUses

CREATE PROCEDURE [dbo].[sp_UpdateCouponCount]
AS

Declare @couponCount int,
@CouponName nvarchar(50),
@couponIdFromQuery int


Declare curP cursor For

select COUNT(*) as totalcount , Name as name,couponuse.couponid as couponid from Coupon as coupon
join CouponUse as couponuse on coupon.id = couponuse.couponid
where couponuse.id=@cuponId
group by couponuse.couponid , coupon.Name

OPEN curP
Fetch Next From curP Into @couponCount, @CouponName,@couponIdFromQuery

While @@Fetch_Status = 0 Begin

print @couponCount
print @CouponName

update Coupon SET NoofUses=@couponCount
where couponuse.id=@couponIdFromQuery


Fetch Next From curP Into @couponCount, @CouponName,@couponIdFromQuery

End -- End of Fetch

Close curP
Deallocate curP

希望这有帮助!

关于sql - 如何在 SQL Server 2008 中的存储过程中编写游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13507317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com