zoukankan      html  css  js  c++  java
  • [SQL Server]储存过程中使用临时表循环操作数据

    本文为原创文章,转载请注明出处!我的博客地址: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

  • 相关阅读:
    jquery 表单清空
    CK-Editor content.replace
    CSS DIV HOVER
    返回上一页并刷新与返回上一页不刷新代码
    Google Java编程风格指南中文版
    编程常见英语词汇
    教你如何删除tomcat服务器的stdout.log文件
    @Autowired @Resource @Qualifier的区别
    JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
    4.11 application未注入报错解决
  • 原文地址:https://www.cnblogs.com/txwd/p/7447444.html
Copyright © 2011-2022 走看看