zoukankan      html  css  js  c++  java
  • 将一张表数据定时插入到另一张表

    之前一直在Java代码中嵌套sql,所以对sql有一个误区,只能一列一列执行,其实sql也可以定义变量,定义函数(存储过程)

    在公司实习,需要实现将一张表数据定时插入到另一张表

    这里用到了游标sql server的作业

    思路:   1.需要运用游标对表记录遍历的功能

                  2.需要将需要插入的列定义为变量赋值或者直接常量赋值

                 3.在插入时要判断新表中是否已经含有数据,实现增量同步

                 4.将sql脚本设置为定时作业  

                  sql脚本

                 

    declare 
    @subMark int,
    @currentMark varchar(32),
    @name varchar(32),
    @capitalspec varchar(100);
    set @subMark=(select  substring(max(mark),3,7)+1   from CptCapital where mark  like 'sc04%'  and  len(mark)=8)
    
    -- 声明游标
    DECLARE c_offOrdMacConfigZhb CURSOR FAST_FORWARD FOR
        select F_124 as name,(F_125+FModel+Fname) as capitalspec from  offOrdMacConfigZhb;
    
    --打开游标
    open c_offOrdMacConfigZhb;
    
    --取第一条记录
    FETCH NEXT FROM c_offOrdMacConfigZhb INTO @name,@capitalspec;
    
    WHILE @@FETCH_STATUS=0
    
    begin 
          --不存在才执行插入操作
          if not exists(select * from CptCapital where name=@name and capitalspec=@capitalspec and isdata=1)
          begin 
               set @currentMark='SC0'+convert(varchar,@subMark);
                insert into CptCapital(mark,name,departmentid,resourceid,sptcount,currencyid,capitalspec,capitaltypeid,capitalgroupid,unitid,isdata)values(@currentMark,@name,859,8274,1,1,@capitalspec,1,30,1,1);
               set @subMark=@subMark+1;
           end
          -- 取下一条记录
        FETCH NEXT FROM c_offOrdMacConfigZhb INTO @name,@capitalspec;
    end
    
    -- 关闭游标
    CLOSE c_offOrdMacConfigZhb;
    
    -- 释放游标
    DEALLOCATE c_offOrdMacConfigZhb;

                    

     

    其实,sql也并没有想象中那么复杂,熟悉了都一样

            在这里学会了游标的使用

                    

     

  • 相关阅读:
    SQL 基础题。
    C# 多维数组.
    C# 泛型相关.
    C# 委托数组.
    ActiveX的数字签名
    Asp.Net Html标记替换.感谢个热心人。弄了好久.
    关于TableLayoutPanel里放入控件无法将Dock设为Fill的解决办法
    服务器×××上的MSDTC不可用解决办法
    vista home下运行asp.net2.0 程序环境配置
    麦克风的调节
  • 原文地址:https://www.cnblogs.com/goxcheer/p/8761486.html
Copyright © 2011-2022 走看看