首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问一个数据迁移的有关问题

2012-02-14 
问一个数据迁移的问题。有这样2个表maintableCREATETABLE[dbo].[maintable]([id][int]IDENTITY(1,1)NOTNULL

问一个数据迁移的问题。
有这样2个表
maintable

CREATE   TABLE   [dbo].[maintable]   (
[id]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,
[content]   [char]   (10)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO

CREATE   TABLE   [dbo].[othertalbe]   (
[id]   [int]   NULL   ,
[opname]   [char]   (10)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[date]   [datetime]   NULL  
)   ON   [PRIMARY]
GO
其中maintable为主键表,主键为id。othertable为外键表,外键为id。

现有2个数据库:数据库A,数据库B。其中都有maintable,othertable这2个表。
其中数据库A中
maintable   数据若下
1test1          
2test2          
3test3          
othertable数据如下
1op1               2007-07-20   15:05:47
1op2               2007-07-20   15:05:47
1op3               2007-07-20   15:05:47
1op4               2007-07-20   15:05:47
2op1               2007-07-20   15:06:33
2op2               2007-07-20   15:06:39
2op3               2007-07-20   15:07:08
2op4               2007-07-20   15:07:15
3op1               2007-07-20   15:07:43
3op2               2007-07-20   15:07:51
3op3               2007-07-20   15:07:54
3op4               2007-07-20   15:07:57


但是数据库B内容如下:
maintable   数据若下
1test4          
2test5        
3test6  
othertable数据如下
1op1               2007-07-20   15:05:47
1op2               2007-07-20   15:05:47
1op3               2007-07-20   15:05:47
1op4               2007-07-20   15:05:47
2op1               2007-07-20   15:06:33
2op2               2007-07-20   15:06:39
2op3               2007-07-20   15:07:08
2op4               2007-07-20   15:07:15
3op1               2007-07-20   15:07:43
3op2               2007-07-20   15:07:51
3op3               2007-07-20   15:07:54
3op4               2007-07-20   15:07:57
  现要求将B数据库内容整合到数据库A中,
整合后要求如下数据内容为

maintable   数据若下
1test1          
2test2          
3test3          
4test4          
5test5        
6test6  
othertable数据如下
1op1               2007-07-20   15:05:47
1op2               2007-07-20   15:05:47


1op3               2007-07-20   15:05:47
1op4               2007-07-20   15:05:47
2op1               2007-07-20   15:06:33
2op2               2007-07-20   15:06:39
2op3               2007-07-20   15:07:08
2op4               2007-07-20   15:07:15
3op1               2007-07-20   15:07:43
3op2               2007-07-20   15:07:51
3op3               2007-07-20   15:07:54
3op4               2007-07-20   15:07:57
4op1               2007-07-20   15:05:47
4op2               2007-07-20   15:05:47
4op3               2007-07-20   15:05:47
4op4               2007-07-20   15:05:47
5op1               2007-07-20   15:06:33
5op2               2007-07-20   15:06:39
5op3               2007-07-20   15:07:08
5op4               2007-07-20   15:07:15
6op1               2007-07-20   15:07:43
6op2               2007-07-20   15:07:51
6op3               2007-07-20   15:07:54
6op4               2007-07-20   15:07:57

不知道如何实现。最主要把数据库B的maintable数据导入到数据库A中,id不会自增。
望高手帮忙和有有相关经验者提供帮助。

[解决办法]
一個不需要太複雜算法的方法,

1. 先將A,B兩數據庫中maintable表的IDENTITY 屬性設為NO, 即不自增.

2. 找到A中 maintable最大id, 假設為整數 maxid.
3. 修改B中id的值
update maintable set id=id+maxid
update othertable set id=id+maxid

3. 將修改的記錄import 到A中或用insert語句插入A中都可以.

热点排行