前进的道路不是一帆风顺的,要随时迎接挑战,敢于战胜困难!

坚持一下,找人聊聊天,释放一些压力!

 

SQL2000新老数据库的合并,数据库表添加字段,以及连接表

最近在做项目时,遇到一个新老数据库数据合并的问题,由于数据库表的字段存在差异,需要对每个数据库添加一些字段以达到统一,以进行连接。当然,可能存在更好的方法进行合并,当此时未想到,呵呵……

在数据库wxjs上表tmk的基础上建表tmk1,具体步骤如下

select id = identity(int,1,1) ,* into tmk1 //id为自增1的主键
 from
(select distinct record,tflh,ttm,tzz,twxly,tcbs,tjh,tch,tys,twxlx,indate,exchange,twz from tmk) t order by record

//record,tflh,ttm,tzz,twxly,tcbs,tjh,tch,tys,twxlx,indate,exchange,twz from tmk为原有表tmk的字段

 

 

alter table tmk1
add tUser char(40) null
add clicks int null

UPDATE tmk1 SET tmk1.clicks=0 //设置clicks字段的初始值为0
add ttm2 char(200) null
add tflh2 char(12) null
add tflh3 char(12) null
add tflh4 char(12) null
add tkeyword1 char(100) null
add tkeyword2 char(100) null
add tkeyword3 char(100) null
add tkeyword4 char(100) null

 

上面的语句除alter外下面的要一句一句执行,前面的执行完注释起来,以继续添加字段。

 

insert into TEST.dbo.tmk1(record,tflh,ttm,tzz,twxly,tcbs,tjh,
tch,tys,twxlx,indate,exchange,twz,tUser,clicks,ttm2,tflh2,
tflh3,tflh4,tkeyword1,tkeyword2,tkeyword3,tkeyword4)
select a.record,a.tflh,a.ttm,a.tzz,a.twxly,a.tcbs,
a.tjh,a.tch,a.tys,a.twxlx,a.indate,a.exchange,
a.twz,a.tUser,a.clicks,a.ttm2,a.tflh2,a.tflh3,
a.tflh4,a.tkeyword1,a.tkeyword2,
a.tkeyword3,a.tkeyword4
from newWXJS.dbo.tmk a
where not exists(select * from TEST.dbo.tmk
where
record=a.record and tflh=a.tflh and ttm=a.ttm
and tzz=a.tzz and twxly=a.twxly and tcbs=a.tcbs
and tjh=a.tjh and tch=a.tch and tys=a.tys
and twxlx=a.twxlx and indate=a.indate and exchange=a.exchange
and twz=a.twz)

//注意不要加 and tUser=a.tUser and clicks=a.clicks
and ttm2=a.ttm2 and tflh2=a.tflh2 and tflh3=a.tflh3
and tflh4=a.tflh4 and tkeyword1=a.tkeyword1 and tkeyword2=a.tkeyword2
and tkeyword3=a.tkeyword3 and tkeyword4=a.tkeyword4 因为空值不能直接比较,如果加了,将会导致所有数据都重复了一次。

库TEST中表tmk1与库newWXJS中表tmk合并,并更新至库TEST的表土tmk1中。

posted on 2008-08-23 17:00  山径山精  阅读(1371)  评论(2编辑  收藏  举报

导航