[SQL Server]储存过程中使用临时表循环操作数据
2024-10-21 15:53:56
本文为原创文章,转载请注明出处!我的博客地址:http://www.cnblogs.com/txwd
由于工作原因,到目前为此已有一年多没有写SQL Server的储存过程了,已有些生疏。日前工作中有个表的数据需要定时更新,翻了一下以前写的储存过程,在此记录一下。
需求是这样的:
有两张表 1、博主表: Blogger ,2、博主对应的文章表: BlogForBlogger
文章表的数据由服务端定时获取,博主表有个字段保存博主文章的总数量,所以这个字段要定时去更新。
实现:创建一个储存过程,然后在数据库中开个作业定时去执行这个储存过程。
-- =============================================
-- Author: LI
-- Create date: 2017-08-29
-- Description: 更新博主文章总数量
-- =============================================
CREATE PROCEDURE sp_Update_Blogger_Blog_ArticleCount
AS
BEGIN
declare @account varchar(50); --博主账号
declare @count int; --博主数量
declare @i int; --循环标识
declare @articleCount int; --文章数量
--把所有博主信息存到临时表
select * into #temp from(select Account,Ranking,ROW_NUMBER() over(order by Ranking) as row from Blogger ) b
select @count = COUNT(1) from #temp;
set @i = 1;
--循环临时表
while (@count >= @i)
begin
select @account = Account from #temp where row = @i; --获取当前行的博主账号
select @articleCount = count(1) from BlogForBlogger where Account = @account; --获取博主的文章数量
update Blogger set ArticleCount = @articleCount; --更新博主的文章数量
set @i = @i + 1;
end
drop table #temp; --删除临时表
END
GO
本文为原创文章,转载请注明出处!我的博客地址:http://www.cnblogs.com/txwd
最新文章
- python的拷贝(深拷贝和浅拷贝)
- Unable to download data from http://ruby.taobao.org/ &; don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
- webapi-1
- RST_n的问题
- HDU1286新朋友欧拉函数版
- 流媒体学习三-------SIP消息结构详解
- 算法——js(Fibonacci数列)
- Linux资源控制-CPU和内存【转】
- 开源代码——Crouton
- java设计模式之单例模式(七种方法)
- 我的vi/vim配置文件
- Mac 系统安装 oh my zsh
- java 常用工具整理
- python操作Redis安装、支持存储类型、普通连接、连接池
- PM_LOG
- ubuntu 14.04 LTS 右键菜单解压压缩包时出错
- 单源最短路:Dijkstra算法 及 关于负权的讨论
- HDU 6197 array array array 2017沈阳网络赛 LIS
- Cockpit 服务化管理工具
- 给Docker武士们的正式邀请,赶紧收哦!