问一个数据迁移的问题。
有这样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中都可以.