1、忽略表之间的关联关系
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语句执行了:
假设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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)