首页 新闻 会员 周边 捐助

sql server2000中的两个数据表要合并

0
[已关闭问题]
<pre>表1有本号、户号、户名、地址、口径、电话、联系人,有1500条记录 表2有本号、户号、户名、地址,有10000条记录 他们都是以户号为主键的记录,将他们合并后保持本号、户号、户名、地址、口径、电话、联系人这7列,还是以户号为主键,就是不能有重复的户号。 </pre> <p>&nbsp;</p>
天气预报的主页 天气预报 | 初学一级 | 园豆:200
提问于:2009-11-16 12:41
< >
分享
其他回答(3)
0

如果户号主键没有冲突的话

select * from

(

select 本号,户号,户名,地址,口径,电话,联系人 from 表1

union all

select 本号,户号,户名,地址,'' as 口径,''as 电话,'' as 联系人 from 表2

)a

如果主键有冲突的话就得先解决主键冲突的问题,或者建立联合主键。

清海扬波 | 园豆:825 (小虾三级) | 2009-11-16 12:44
0

select * from

(

select * from 表1

union all

select * from 表2

)ct

这样应该是行的

苏飞 | 园豆:2024 (老鸟四级) | 2009-11-16 13:17
0

楼主是要做数据表合并吧,那就把表2合并到 表1吧,这样稍微省事些,步骤如下:

1、解决表1和表2的主键冲突问题,找到在两个表中都有的户号(select 户号 from 表1 inner join 表2 on 表1.户号=表2.户号),删除其中一个表的该部分记录;

2、执行下列语句:

insert into 表1(本号,户号,户名,地址,口径,电话,联系人) (select 本号,户号,户名,地址,'','','' from 表2)

3、删除表2或更改表2的表名;

dege301 | 园豆:2825 (老鸟四级) | 2009-11-16 17:34
0

循环读取表2中的数据,插入到表1

if not exists
(select 户号 From 表1 Where 户号=@户号)
 begin
Insert into 表1(本号,户号,户名,地址,口径,电话,联系人) values(@本号,@户号、@户名,@地址,@口径,@电话,@联系人)
 end

zjy | 园豆:3194 (老鸟四级) | 2009-11-17 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册