zoukankan      html  css  js  c++  java
  • 游标批量同步数据

    --SQL批量同步商务数据交易平台
    --by ltr
     
    --操作提示:运行此脚本前请记得备份您要操作的数据库
    --实现功能:执行脚本后数据库中YW_OrderInfo表的记录跟商务的BS_orderInfor记录数相同
     
    --脚本代码开始
    declare @OrderID nvarchar(500) -- 游标中取出的 交易平台id
    declare @OrderNumber nvarchar(500)--游标中取出的  任务单号
    declare @SalesMan nvarchar(500)--游标中取出的   销售员 业务员卡号
    declare @SwBumen nvarchar(500)  --游标中取出的  商务部门,小组号
    declare @OrderSource nvarchar(500)--游标中取出的  正常 = 1,无信息员有业务员 = 2,商务回头客 = 3,主案回头客 = 4,工程回头客 = 5,电子商务 = 6
    declare @CreateTime nvarchar(500)  --游标中取出的  提交时间
    SET @CreateTime='2016-03-14'
    declare @IsMessager nvarchar(500)--游标中取出的 是否有信息员 1-有信息员,0-无信息员
    declare @Memo nvarchar(500) -- '2016-03-14商务导入主案不存在的订单'
    SET @Memo='2016-03-14商务导入主案不存在的订单'
    
     
    --声明游标,这里一定要保证去重,否则会重复插入。
    declare mycursor1 cursor for (SELECT DISTINCT OrderNumber,SalesMan,SwBumen,OrderSource,IsMessager from master..YW_OrderInfo0310)
     --打开游标
    open mycursor1 
    --从游标里取出数据赋值到我们刚才声明的变量中
    fetch next from mycursor1 into @OrderNumber,@SalesMan,@SwBumen,@OrderSource,@IsMessager
    --如果游标执行成功  
    while (@@fetch_status=0) 
    begin 
        --构造id 
        exec p_getMaxID 'YW_OrderInfo', 'admin', @OrderID OUTPUT
        PRINT @OrderID 
    
        EXEC('INSERT INTO YW_OrderInfo(OrderID,OrderNumber,SalesMan,SwBumen,OrderSource,CreateTime,IsMessager,Memo)
        VALUES('''+@OrderID+''','''+@OrderNumber+''','''+@SalesMan+''','''+@SwBumen+''','''+@OrderSource+''','''+@CreateTime+''','''+@IsMessager+''','''+@Memo+''')')
    
     --用游标去取下一条记录
        fetch next from mycursor1 into @OrderNumber,@SalesMan,@SwBumen,@OrderSource,@IsMessager
    end 
    --关闭游标
    close mycursor1 
    --撤销游标
    deallocate mycursor1
    --脚本代码结束
    
    
    
    ----待导入的商务数据是否有重复
    --SELECT * FROM master..YW_OrderInfo0310 WHERE ordernumber IN (
    --SELECT ordernumber FROM (
    --SELECT COUNT(1) tot,ordernumber  FROM master..YW_OrderInfo0310 GROUP BY OrderNumber) t WHERE  tot>1 ) AND LEN(ordernumber)>0
    
    
    --SELECT TOP 1 orderNumber,u.u_kahao,u.u_bumen_zi
    --,case when o.NewOrderType=1 then 3
    -- when o.NewOrderType=2 then 4
    --  when o.NewOrderType=3 then 5
    --   when o.NewOrderType=4 then 6
    --    when o.NewOrderType=0 and b.ID is not null then 1
    --     when o.NewOrderType=0 then 2 end OrderSource,o.decorateTime
    --     ,case when o.NewOrderType=0 and b.ID is not null then 1 when o.NewOrderType=0 then 0 end IsMessager
    --     ,'2016-03-11商务导入主案不存在的订单' Memo
    --      FROM BusinessSERVER.BusinessSystemDB.dbo.BS_orderInfor o
    --       left join BusinessSERVER.BusinessSystemDB.dbo.BS_inforAssistant b on o.assistantID=b.ID and o.tb_diqu=b.tb_diqu
    --        left join BusinessSERVER.BusinessSystemDB.dbo.BS_swb_userList u on u.ID=o.salesManID and u.tb_diqu=o.tb_diqu
    --         where o.assistantID<=0 and b.ID is NULL and u.ID is not  null 
    
    
    
    --SELECT COUNT(1),ordernumber FROM YW_OrderInfo  GROUP BY ordernumber
    
    --select * FROM YW_OrderInfo WHERE memo LIKE ('2016-03-14商务导入主案不存在的订单')
    
    --delete FROM YW_OrderInfo WHERE memo LIKE ('2016-03-14商务导入主案不存在的订单')
  • 相关阅读:
    Python装饰器
    Python常用内建模块
    Python文件的操作
    Python集合的操作
    Python字典的操作
    Python列表元组的操作
    os.path
    Python字符串的操作
    线性回归
    随机森林
  • 原文地址:https://www.cnblogs.com/tianrui/p/5276764.html
Copyright © 2011-2022 走看看