SQLSERVER数据库升级脚本图文步骤
2013-11-24 00:00
633 查看
只能远程协助的方式。我特意做了一个脚本,用电话指导客户在SSMS里执行一下脚本就可以了
1.0的数据库跟1.1的数据库的区别是1.1的数据库里的其中一个[CT_OuterCard]表比1.0的多了6个字段,其他所有表都一样
还有存储过程增加了很多,其他都没有改变
首先,先在公司的服务器数据库上生成存储过程脚本,数据库是1.1版本的,下面的图片里没有说明的,都是默认设置,下一步即可
选中数据库-》右键―》任务-》生成脚本
当然,如果你的数据库里有自定义函数的话,也可以勾选函数,如果我们的数据库没有函数,所以。。。
保存到新建查询窗口
这一步做完了,然后编写下面的SQL脚本
然后把这个脚本发给客户,让客户在SSMS里执行一下就可以了
当然如果某些表的主键更改了也很简单,使用alter table alter column语句修改一下就可以了
如有不对的地方,欢迎大家拍砖o(∩_∩)o
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 2008 CDC功能实现数据变更捕获脚本
- SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)
- SQL Server 2000“设备激活错误”的解决方法
- 教你轻松学会SQL Server记录轮班的技巧
- 教你轻松恢复/修复SQL Server的MDF文件
- mysql 表索引的一些要点
- 使用SQL语句清空数据库所有表的数据
- DB2与Sybase/Oracle/Informix的比较
- oracle rman plus archivelog自动执行的步骤
- Entity Framework Code First数据库自动更新
- mysql5.6.14的安装和测试
- SQL Server 学习系列之一
- MongoDB实战(10)Replica Sets 副本集(下)
- Oracle EXPLAIN PLAN用法
- mysql学习笔记03 mysql数据类型
- oracle 直接复制表内容到新表
- SQL Server 学习系列之四(SQL 内幕)
- jsp中利用分页技术显示数据库内容
- POI 读取excel导入导出数据到数据库
- RMAN连接目标数据库及目录数据库