两张表比较问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 20:44:23
有两张表(NewTable,OldTable) 两张表的结构一样 现在我想对两张表进行比较 对于两表中的同一条记录 我想一个字段 一个字段的比较 (大概有16个字段)如果有任何一个字段不一样 就让OldTable表中的那个字段的值替换为NewTable表中的那个值 如果NewTable表中的记录OldTable表中没有 就向OldTable表中插入那条记录
希望微软专家给个好的解决方法 我都快苦恼死了 O(∩_∩)O谢谢

SQL2008可用
MERGE
...
USING..

WHEN MATCHED THEN...
WHEN TARGET NOT MATCHED THEN..

SQL2000-05用唯一列ID

update a
set Col1=b.Col1,Col2=b.Col2.....
from OldTable a inner join NewTable b on a.ID=b.ID

insert OldTable(Col1,COl2....)
select
b.Col1,b.Col2....
from OldTable a right join NewTable b on a.ID=b.ID
where a.ID is null

来自:求助得到的回答

1、先把NewTable,OldTable都有的记录找出来,把其中OldTable的记录放TempTable
2、从NewTable删除和OldTable相同的记录
3、把NewTable插入到OldTable
4、把TempTable插入到NewTable

考虑复杂了吧,直接把 NewTable,的数据拉到 OldTable 表中。不是符合你想要的结果么?