• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQLSERVER数据库升级脚本图文步骤

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

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

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

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

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

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

    保存到新建查询窗口

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

    复制代码 代码如下:

    --升级GPOS1.0到GPOS1.1数据库的升级脚本 2013-7-4
    USE [GPOSDB]
    GO
    ------------------删除所有存储过程-------------------
    --select * from sys.procedures

    declare @sql varchar(4000)
    set @sql=''
    select @sql=@sql+'drop proc '+name+';   ' from sys.procedures
    --print @sql
    exec(@sql)

    --------------------------------在[CT_OuterCard]表添加6个字段-------------------------------
    ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransCurrCount] INT  NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitTransCurrCount]  DEFAULT ((0))
    ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitTransType] [int] CONSTRAINT [DF_CT_OuterCard_I_LimitTransType]  DEFAULT ((0))
    ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransTotal]  DEFAULT ((0))
    ALTER TABLE [dbo].[CT_OuterCard] ADD [DE_LimitTransCurrTotal] [decimal](18, 2) NOT NULL CONSTRAINT [DF_CT_OuterCard_DE_LimitTransCurrTotal]  DEFAULT ((0))
    ALTER TABLE [dbo].[CT_OuterCard] ADD [I_LimitCarNo] [int] NOT NULL CONSTRAINT [DF_CT_OuterCard_I_LimitCarNo]  DEFAULT ((0))
    ALTER TABLE [dbo].[CT_OuterCard] ADD [D_LimitDate] [datetime] NOT NULL CONSTRAINT [DF_CT_OuterCard_D_LimitDate]  DEFAULT (getdate())
    --------------------------------------------------------------------------------------------------------------
    --把刚才在新建查询窗口里生成的存储过程脚本粘贴到下面
    ---------------------------创建GPOS1.1的所有存储过程---------------------------------------------
    USE [GPOSDB]
    GO
    /****** 对象:  StoredProcedure [dbo].[Report_GreaserSaleStat]    脚本日期: 07/04/2013 13:27:09 ******/
    SET ANSI_NULLS OFF
    GO
    SET QUOTED_IDENTIFIER OFF
    GO


    CREATE PROC [dbo].[Report_GreaserSaleStat]
    @StartDate datetime,
    @EndDate datetime,
    @Action int --0为交易记录,1为班次记录

       
                insert into #tmpCardAmoutStat
                    (
                        VC_OC_CardNO,

                set @i=@i+1
            end

            truncate table #tmpCards
            insert into #tmpCards(VC_OC_CardNO)
            select VC_OC_CardNO from CT_OuterCard where isnull(VC_OC_Company,'')=''
            set @j=1
            select @cardcount=count(*) from #tmpCards
            while @j=@cardcount
            begin
                select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where  IndexId=@j
                insert into #tmpCardAmoutStat
                    (
                        VC_OC_CardNO,
           

            insert into #tmpCardAmoutStat
                (
                    VC_OC_CardNO,
                    CompanyName,
                    VC_OC_UserName,
                    StartAmount,
                    FillMoney,
                    ConsumeSumVol,
                    ConsumeMoney,
                    SumConsumeSumVol,
                    SumConsumeMoney,
                    SumFillMoney

                )
            select
                null,
                null,
                '客户卡小计',
                sum(StartAmount),
                sum(FillMoney),
                sum(ConsumeSumVol),

            truncate table #tmpCards
            insert into #tmpCards(VC_OC_CardNO)
            select VC_IC_CardNO from CT_InhouseCard where isnull(VC_IC_CardNO,'')>''
            set @j=1
            select @cardcount=count(*) from #tmpCards
            while @j=@cardcount
            begin
                select @VC_OC_CardNO=VC_OC_CardNO from #tmpCards where  IndexId=@j
                insert into #tmpCardAmoutStat
                    (
                        VC_OC_CardNO,
                        CompanyName,
                        VC_OC_UserName,
                        StartAmount,
                        FillMoney,
                        ConsumeSumVol,
                        ConsumeMoney,
                        SumConsumeSumVol,
                        SumConsumeMoney,
                        SumFillMoney

                    )
                select
                    @VC_OC_CardNO,
                    '员工卡',
                    isnull((select VC_IC_UserName from CT_InhouseCard where VC_IC_CardNO=@VC_OC_CardNO),''),
                    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),
                    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),
                    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),
                    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),
                    isnull((select sum(DE_FD_Volume) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
                    isnull((select sum(DE_FD_Amount) from CT_FuelingData where VC_FD_Cardno=@VC_OC_CardNO),0),
                    isnull((select sum(DE_A_AppendAmount) from CT_Append where VC_A_CardNO=@VC_OC_CardNO),0)
                set @j=@j+1
            end

            insert into #tmpCardAmoutStat
                (
                    VC_OC_CardNO,
                    CompanyName,
                    VC_OC_UserName,
                    StartAmount,
                    FillMoney,
                    ConsumeSumVol,
                    ConsumeMoney,
                    SumConsumeSumVol,
                    SumConsumeMoney,
                    SumFillMoney

                )
            select
                null,
                null,
                '员工卡小计',
                sum(StartAmount),
                sum(FillMoney),
                sum(ConsumeSumVol),
                sum(ConsumeMoney),
                sum(SumConsumeSumVol),
                sum(SumConsumeMoney),
                sum(SumFillMoney)
            from
                #tmpCardAmoutStat
            where
                CompanyName='员工卡'
            ---计算员工卡汇总结束---
        end

        ----计算总汇总开始---
        insert into #tmpCardAmoutStat
            (
                VC_OC_CardNO,
                CompanyName,
                VC_OC_UserName,
                StartAmount,
                FillMoney,
                ConsumeSumVol,
                ConsumeMoney,
                SumConsumeSumVol,
                SumConsumeMoney,
                SumFillMoney

            )
        select
            null,
            null,
            '总计',
            sum(StartAmount),
            sum(FillMoney),
            sum(ConsumeSumVol),
            sum(ConsumeMoney),
            sum(SumConsumeSumVol),
            sum(SumConsumeMoney),
            sum(SumFillMoney)
        from
            #tmpCardAmoutStat
        where
            (VC_OC_UserName='客户卡小计' or VC_OC_UserName='员工卡小计') and VC_OC_CardNO is null
        update #tmpCardAmoutStat set EndAmount=StartAmount+FillMoney-ConsumeMoney
        ---计算总汇总结束---
        select * from  #tmpCardAmoutStat

        drop table #tmpCards
        drop table #tmpCompanys
        drop table #tmpCardAmoutStat
    GO

    --其他存储过程省略。。。。。。。。。。。



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

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

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

    您可能感兴趣的文章:
    • sqlserver数据库移动数据库路径的脚本示例
    • sqlserver数据库大型应用解决方案经验总结
    • 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)
    • SQLSERVER数据库备份后无法还原的解决办法
    • sqlserver数据库出现置疑的解决思路
    • SQLSERVER数据库中的5173错误解决方法
    • 将备份的SQLServer数据库转换为SQLite数据库操作方法
    • sqlserver数据库主键的生成方式小结(sqlserver,mysql)
    • 重命名SQLServer数据库的方法
    • 自动定时备份sqlserver数据库的方法
    • sqlserver数据库导入数据操作详解(图)
    上一篇:IP连接SQL SERVER失败(配置为字符串失败)图文解决方法
    下一篇:SQLServer 2008 CDC功能实现数据变更捕获脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQLSERVER数据库升级脚本图文步骤 SQLSERVER,数据库,升级,脚本,