zoukankan      html  css  js  c++  java
  • 记录一下公司数据库升级的步骤

    记录一下公司数据库升级的步骤

    公司的系统需要从1.0升级到1.1,包括所有正在使用我们公司产品的客户,因为公司的客户遍布全国,不可能出差每个客户都跑一次

    所以只能远程协助的方式。我特意做了一个脚本,用电话指导客户在SSMS里执行一下脚本就可以了

    1.0的数据库跟1.1的数据库的区别是1.1的数据库里的其中一个[CT_OuterCard]表比1.0的多了6个字段,其他所有表都一样

    还有存储过程增加了很多,其他都没有改变

    ---------------------------------------------华丽的分割线-----------------------------------------------

    首先,先在公司的服务器数据库上生成存储过程脚本,数据库是1.1版本的,下面的图片里没有说明的,都是默认设置,下一步即可

    选中数据库-》右键—》任务-》生成脚本

    当然,如果你的数据库里有自定义函数的话,也可以勾选函数,如果我们的数据库没有函数,所以。。。

    保存到新建查询窗口

    ---------------------------------------华丽的分割线-----------------------------------------------------

    这一步做完了,然后编写下面的SQL脚本

      1 --升级GPOS1.0到GPOS1.1数据库的升级脚本 2013-7-4
      2 USE [GPOSDB]
      3 GO
      4 ------------------------------------删除所有存储过程-----------------------------------
      5 --select * from sys.procedures
      6 
      7 declare @sql varchar(4000)
      8 set @sql=''
      9 select @sql=@sql+'drop proc '+name+';   ' from sys.procedures
     10 --print @sql
     11 exec(@sql)
     12 
     13 --------------------------------在[CT_OuterCard]表添加6个字段-------------------------------
     14 ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransCurrCount] INT  NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitTransCurrCount]  DEFAULT ((0))
     15 ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransType] [int] CONSTRAINT [DF_CT_OuterCard_I_LimitTransType]  DEFAULT ((0))
     16 ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransTotal]  DEFAULT ((0))
     17 ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransCurrTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransCurrTotal]  DEFAULT ((0))
     18 ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitCarNo] [int] NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitCarNo]  DEFAULT ((0))
     19 ALTER TABLE [dbo].[CT_OuterCard] ADD [D_LimitDate] [datetime] NOT NULL CONSTRAINT [DF_CT_OuterCard_D_LimitDate]  DEFAULT (getdate())
     20 --------------------------------------------------------------------------------------------------------------
     21 --把刚才在新建查询窗口里生成的存储过程脚本粘贴到下面
     22 ---------------------------创建GPOS1.1的所有存储过程---------------------------------------------
     23 USE [GPOSDB]
     24 GO
     25 /****** 对象:  StoredProcedure [dbo].[Report_GreaserSaleStat]    脚本日期: 07/04/2013 13:27:09 ******/
     26 SET ANSI_NULLS OFF
     27 GO
     28 SET QUOTED_IDENTIFIER OFF
     29 GO
     30 
     31 
     32 CREATE PROC [dbo].[Report_GreaserSaleStat]
     33 @StartDate datetime,
     34 @EndDate datetime,
     35 @Action int --0为交易记录,1为班次记录
     36 
     37     
     38             insert into #tmpCardAmoutStat
     39                 (
     40                     VC_OC_CardNO,
     41             
     42             set @i=@i+1
     43         end
     44 
     45         truncate table #tmpCards
     46         insert into #tmpCards(VC_OC_CardNO)
     47         select VC_OC_CardNO from CT_OuterCard where isnull(VC_OC_Company,'')=''
     48         set @j=1
     49         select @cardcount=count(*) from #tmpCards
     50         while @j<=@cardcount
     51         begin
     52             select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where  IndexId=@j
     53             insert into #tmpCardAmoutStat
     54                 (
     55                     VC_OC_CardNO,
     56         
     57 
     58         insert into #tmpCardAmoutStat
     59             (
     60                 VC_OC_CardNO,
     61                 CompanyName,
     62                 VC_OC_UserName,
     63                 StartAmount,
     64                 FillMoney,
     65                 ConsumeSumVol, 
     66                 ConsumeMoney, 
     67                 SumConsumeSumVol,
     68                 SumConsumeMoney,
     69                 SumFillMoney
     70 
     71             )
     72         select 
     73             null,
     74             null,
     75             '客户卡小计',
     76             sum(StartAmount),
     77             sum(FillMoney),
     78             sum(ConsumeSumVol),
     79         
     80         truncate table #tmpCards
     81         insert into #tmpCards(VC_OC_CardNO)
     82         select VC_IC_CardNO from CT_InhouseCard where isnull(VC_IC_CardNO,'')<>''
     83         set @j=1
     84         select @cardcount=count(*) from #tmpCards
     85         while @j<=@cardcount
     86         begin
     87             select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where  IndexId=@j
     88             insert into #tmpCardAmoutStat
     89                 (
     90                     VC_OC_CardNO,
     91                     CompanyName,
     92                     VC_OC_UserName,
     93                     StartAmount,
     94                     FillMoney,
     95                     ConsumeSumVol, 
     96                     ConsumeMoney, 
     97                     SumConsumeSumVol,
     98                     SumConsumeMoney,
     99                     SumFillMoney
    100 
    101                 )
    102             select 
    103                 @VC_OC_CardNO,
    104                 '员工卡',
    105                 isnull((select VC_IC_UserName from CT_InhouseCard where VC_IC_CardNO=@VC_OC_CardNO),''),
    106                 isnull((select top 1 DE_FD_Amount from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime<=@StartDate) order by D_FD_DateTime desc),0),
    107                 isnull((select sum(DE_A_AppendAmount) from CT_Append where VC_A_CardNO=@VC_OC_CardNO and (D_A_AppendDateTime between @StartDate and @EndDate)),0),
    108                 isnull((select sum(DE_FD_Volume) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime between @StartDate and @EndDate)),0),
    109                 isnull((select sum(DE_FD_Amount) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO and (D_FD_DateTime between @StartDate and @EndDate)),0),
    110                 isnull((select sum(DE_FD_Volume) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
    111                 isnull((select sum(DE_FD_Amount) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
    112                 isnull((select sum(DE_A_AppendAmount) from CT_Append where VC_A_CardNO=@VC_OC_CardNO),0)
    113             set @j=@j+1
    114         end
    115 
    116         insert into #tmpCardAmoutStat
    117             (
    118                 VC_OC_CardNO,
    119                 CompanyName,
    120                 VC_OC_UserName,
    121                 StartAmount,
    122                 FillMoney,
    123                 ConsumeSumVol, 
    124                 ConsumeMoney, 
    125                 SumConsumeSumVol,
    126                 SumConsumeMoney,
    127                 SumFillMoney
    128 
    129             )
    130         select 
    131             null,
    132             null,
    133             '员工卡小计',
    134             sum(StartAmount),
    135             sum(FillMoney),
    136             sum(ConsumeSumVol),
    137             sum(ConsumeMoney),
    138             sum(SumConsumeSumVol),
    139             sum(SumConsumeMoney),
    140             sum(SumFillMoney) 
    141         from 
    142             #tmpCardAmoutStat 
    143         where 
    144             CompanyName='员工卡'
    145         ---计算员工卡汇总结束---
    146     end
    147     
    148     ----计算总汇总开始---
    149     insert into #tmpCardAmoutStat
    150         (
    151             VC_OC_CardNO,
    152             CompanyName,
    153             VC_OC_UserName,
    154             StartAmount,
    155             FillMoney,
    156             ConsumeSumVol, 
    157             ConsumeMoney, 
    158             SumConsumeSumVol,
    159             SumConsumeMoney,
    160             SumFillMoney
    161 
    162         )
    163     select 
    164         null,
    165         null,
    166         '总计',
    167         sum(StartAmount),
    168         sum(FillMoney),
    169         sum(ConsumeSumVol),
    170         sum(ConsumeMoney),
    171         sum(SumConsumeSumVol),
    172         sum(SumConsumeMoney),
    173         sum(SumFillMoney) 
    174     from 
    175         #tmpCardAmoutStat 
    176     where 
    177         (VC_OC_UserName='客户卡小计' or VC_OC_UserName='员工卡小计') and VC_OC_CardNO is null
    178     update #tmpCardAmoutStat set EndAmount=StartAmount+FillMoney-ConsumeMoney
    179     ---计算总汇总结束---
    180     select * from  #tmpCardAmoutStat
    181 
    182     drop table #tmpCards
    183     drop table #tmpCompanys
    184     drop table #tmpCardAmoutStat
    185 GO
    186 
    187 --其他存储过程省略。。。。。。。。。。。


    然后把这个脚本发给客户,让客户在SSMS里执行一下就可以了

    当然如果某些表的主键更改了也很简单,使用alter table alter column语句修改一下就可以了

    如有不对的地方,欢迎大家拍砖o(∩_∩)o

  • 相关阅读:
    Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表
    Hibernate逍遥游记-第9章 Hibernate的映射类型
    Hibernate逍遥游记-第8章 映射组成关系(<component>、<parent>)
    Hibernate逍遥游记-第7章 Hibernate的检索策略和检索方式(<set lazy="false" fetch="join">、left join fetch、FetchMode.JOIN、)
    Hibernate逍遥游记-第6章 通过Hibernate操纵对象(select-before-update)
    Hibernate逍遥游记-第5章映射一对多-02双向(<set>、<key>、<one-to-many>、inverse、cascade="all-delete-orphan")
    Hibernate逍遥游记-第5章映射一对多-01单向<many-to-one>、cascade="save-update"、lazy、TransientObjectException
    Hibernate逍遥游记-第4章映射对象标识符-increment、identity、hilo、native、assigned、sequence、<meta>
    Hibernate逍遥游记-第3章对象-关系映射基础-access="field"、dynamic-insert、dynamic-update、formula、update=false
    CentOS 6.5安装Apache
  • 原文地址:https://www.cnblogs.com/lyhabc/p/3172069.html
Copyright © 2011-2022 走看看