日期:2014-05-17  浏览次数:20452 次

表B的数据更新(或全表替代)到表A
表A(ID,客户编号,电话号码)
表B(ID,客户编号,电话号码)
1.将表B中的电话号码更新到表A,要求ID、客户编号一一对应(ID唯一,客户编号不唯一)

update A
set A.电话号码 = B.电话号码
where A.ID = B.ID
and A.客户编号 = B.客户编号

正确否?表A的记录比表B的少,有问题吗?
------------------------------------
2.或者,用表B的数据完全取代表A的数据,如何做?对A有什么隐性的影响?
sql

------解决方案--------------------
update A
set A.电话号码 = B.电话号码 from B
where A.ID = B.ID
and A.客户编号 = B.客户编号

表A的记录比表B的少,没关系,语句只会修改AB表共有数据
完全覆盖A就把A删除,然后用B表数据填充就行了
delete from A
insert into A select * from B

如果ID自增,需要开启允许插入自增列的选项identity_insert
set identity_insert on A