笔记306 同一个数据库实例里从GPOS1.0升级到GPOS1.1 2013-6-22

笔记306 同一个数据库实例里从GPOS1.0升级到GPOS1.1  2013-6-22

 1 --同一个数据库实例里从GPOS1.0升级到GPOS1.1  2013-6-22
 2 --以下操作都在SQLSERVER2005下进行
 3 
 4 
 5 --先分离原来的数据库,把D盘里的MSSQL文件夹移动到别的位置
 6 
 7 --然后E:\公司文档\最新版gpos1.1(2013.1.18)\GPOS1.1安装(2013-01-18)\数据库安装
 8 --安装1.1版本的GPOSDB
 9 --然后重命名数据库
10 
11 
12 EXEC [sys].[sp_renamedb] @dbname = 'GPOSDB', -- sysname
13     @newname = 'GPOSDBA' -- sysname
14    
15 --清空每张表的数据,数据库刚刚创建好的时候会有一些默认数据
16 USE GPOSDBA
17 GO
18 EXEC   sp_MSforeachtable   'truncate table ?'
19 ------------------------------------------------------------
20 --检查是否已经清空,如果看到结果全部是0,表明所有表都没有数据
21 USE GPOSDBA
22 GO
23 EXEC   sp_MSforeachtable   'select count(*) from ?'
24 
25 --附加原来的数据库
26 
27 --在原来的数据库里的[CT_FuelingData]表找出查询交易序号重复的记录,重复扣款
28 USE [GPOSDB]
29 GO
30 SELECT  [VC_FD_No] AS '交易序号', COUNT([VC_FD_No]) AS '重复数'
31 FROM    [dbo].[CT_FuelingData]
32 GROUP BY [VC_FD_No]
33 HAVING  COUNT([VC_FD_No]) > 1
34 
35 --然后把重复的记录删除掉
36 USE [GPOSDB]
37 GO
38 DELETE FROM [dbo].[CT_FuelingData] WHERE [VC_FD_No]='0106101124162039'
39 
40 --使用数据导入导出向导来导入数据
41 --右键GPOSDB->导出数据-》在表映射界面勾选“为多个表优化”-》“在事务中运行”
42 
43 
44 --因为新创建的数据库已经有新添加的字段,所以编辑映射就不用了,直接下一步
45 
46 --导入数据完毕之后查询一下数据
47 USE GPOSDBA
48 GO
49 SELECT COUNT(*) FROM [dbo].[CT_FuelingData]
50 SELECT * FROM [dbo].[SystemPara]
51 SELECT * FROM [dbo].[CT_OuterCard]
52 
53 --分离原来的数据库
54 --可以把原来的数据库放到您的移动硬盘里,以作备份之用
55 
56 --重命名数据库
57 --断开所有用户连接,不然会报错:数据库正在使用
58 ALTER DATABASE GPOSDBA SET SINGLE_USER WITH ROLLBACK IMMEDIATE
59 GO
60 EXEC [sys].[sp_renamedb] @dbname = 'GPOSDBA', -- sysname
61     @newname = 'GPOSDB' -- sysname
62 --设置回多用户模式
63 ALTER DATABASE GPOSDB SET  MULTI_USER
64 GO

 

posted @ 2013-08-04 21:23 桦仔 阅读(...) 评论(...)  编辑 收藏