重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、忽略表之间的关联关系
成都创新互联主要从事成都网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务图们,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
ALTER TABLE db2.dbo.table NOCHECK CONSTRAINT 关系名
2、--将没有重复的数据合并
insert into db2.dbo.table(field1,field2...) select field1,field2... from db1.dbo.table a where a.username not in (select username from db2.dbo.table)
3、将重复的数据写入临时表
select field1,field2... into 新的临时表 from db1.dbo.table a where a.username in (select username from db2.dbo.table)
要将两表合并,必须要有相同的字段和字段数据,ID主键自动增加无疑是最好的选择。 所以,在两个表中,都应该有id主键自动增加的字段。 然后就是下面的sql语句执行了:
我是sql初学者。
解决你的问题前我想问下,两个表有没有主键,更新数据是依据id还是姓名。
两个表如果每个人的id是唯一并且相同则可以根据id更新,尝试以下sql语句:
update b1 set b1.score=b2.score
from b1, b2
where b1.id=b2.id
更新姓名只需把score改为name
假设sdeg和zbug的表结构 都是
ID varchar(4) primary key,
Name varchar(8),
Dept varchar(10),
存储过程如下
CREATE PROCEDURE table_combine()
BEGIN
#第一步把sdeg和zbug两个表进行联合输出到临时表tmp_tab中
create temporary table tmp_tab select * from sdeg union select * from zbut;
#第二步创建结果表sdut,并创建主键
create table sdut(ID varchar(4) primary key, Name varchar(8),Dept varchar(10));
#第三步把临时表里面的重复数据过滤并写入sdut
INSERT INTO sdut(ID,Name,Dept) SELECT distinct ID,Name,Dept FROM tmp_tab;
#drop临时表
drop table tmp_tab;
END
将一个表的数据数据全部附加到另一个表中,只要没有主键冲突的问题,直接insert select 就可以了:
insert into ta(col1,col2,...) select col1,col2,... from tb;
如果有冲突,要先将所有主键删除,然后合并后,再重新建主键。
insert into t3 select * from t1 union select* from t2
利用union的合并去重功能来做呗