日期:2014-05-18  浏览次数:20473 次

【急】数据库合并分拆问题
原有数据库 X,包括20个表,现在想新建数据库 Y ,并把原X中的表的内容进行重新分拆合并,最后得到16个表。举例如下:
数据库 X:

表 a 字段: ID,NAME,SEX,BIRTHDAY,ADDRESS,TELEPHONE,WOKRDATE
表 b 字段: ID,WORKDETAIL,CLASS,WORKDATE

新数据库 Y

表 1 字段:ID,NAME,SEX,TELEPHONE,WORKDATE,CLASS
表 2 字段:ID,WORKDETAIL,WORKDATE,BIRTHDAY,ADDRESS

其中ID是唯一的,因为原有数据库目前还在用,因此想通过WORKDATE来进行区分,第一步,把workdate截止到2008-10-31的数据导入到新数据库Y,第二部把 2008-11-1开始的数据导入到Y,这个该如何实现?

------解决方案--------------------
SQL code
use Y
insert into 表1 select a.id,a.name,a.sex,a.telephone,b.class from X.dbo.表a a inner join X.dbo.表b b on a.id=b.id where a.workdate<='2008-10-31'
insert into 表2 select a.id,b.workdetail,a.workdate,a.birthday,a.address from X.dbo.表a a inner join X.dbo.表b b on a.id=b.id where a.workdate<='2008-10-31'

------解决方案--------------------

insert into .....selct * from X..表 where workdate<='2008-10-31'
insert into .....selct * from x..表 where workdate>='2008-11-1'

如果有自增列,插入记录前用set identity_insert off 命令将自增属性关闭,插入记录后
再set identity_insert on将属性撕开


------解决方案--------------------
引用楼主 SprinBell 的帖子:
原有数据库 X,包括20个表,现在想新建数据库 Y ,并把原X中的表的内容进行重新分拆合并,最后得到16个表。举例如下:
数据库 X:

表 a 字段: ID,NAME,SEX,BIRTHDAY,ADDRESS,TELEPHONE,WOKRDATE
表 b 字段: ID,WORKDETAIL,CLASS,WORKDATE

新数据库 Y

表 1 字段:ID,NAME,SEX,TELEPHONE,WORKDATE,CLASS
表 2 字段:ID,WORKDETAIL,WORKDATE,BIRTHDAY,ADDRESS

其中ID是唯一的,因为原有数据库目前还在用,因…