游标循环处理数据

在开发中,经常会遇到一个场景。需要批量处理数据,循环添加、删除、修改一些数据。

需求:

有 文章表(dbo.Gas_Article)、文章作者表(dbo.Gas_ArticleAuthor)

现在需要在后台统计出每个作者共发布了多少文章,和所有文章阅读量之和的数据

以下是我的处理方案:

编写PROCEDURE,内部利用游标循环处理数据,然后使用SqlServer代理,新建一个作业定时任务处理,这样就可以在后台实时统计了。

1 CREATE PROCEDURE Job_UpdateAuthor --创建PROCEDURE 2 AS 3 BEGIN 4 DECLARE UpdateAuthorCursor CURSOR --定义游标 5 FOR 6 SELECT COUNT(*) AS ArticleNumber , 7 SUM(ShowHits) AS ArticleHits , 8 Author 9 FROM dbo.Gas_Article 10 WHERE Author IN ( SELECT Name 11 FROM dbo.Gas_ArticleAuthor 12 WHERE IsDelete = 0 ) 13 GROUP BY Author --查出需要的数据至游标中 14 15 OPEN UpdateAuthorCursor --打开游标 16 17 DECLARE @Number INT, @Hits INT, @Author NVARCHAR(255) 18 FETCH NEXT FROM UpdateAuthorCursor INTO @Number, @Hits, @Author --读取第一行数据,赋值给变量 19 20 WHILE @@FETCH_STATUS = 0 21 BEGIN 22 UPDATE dbo.Gas_ArticleAuthor 23 SET ArticleNumber = @Number , 24 ArticleHits = @Hits 25 WHERE Name = @Author -- 更新dbo.Gas_ArticleAuthor数据 26 27 FETCH NEXT FROM UpdateAuthorCursor INTO @Number, @Hits, @Author --读取下一行数据 28 END 29 30 CLOSE UpdateAuthorCursor --关闭游标 31 32 DEALLOCATE UpdateAuthorCursor --释放游标 33 END 34 GO

__EOF__

本文作者阿星Plus
本文链接https://www.cnblogs.com/meowv/p/10135388.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   阿星Plus  阅读(644)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示