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

求一条更新语句.
A表
线别  |  代码  |  名称
----------------------
01    |  207   | 北京
01    |  208   | 郑州
01    |  209   | 南京
30    |  101   | 北京
30    |  103   | 石家庄
30    |  104   | 邯郸
30    |  108   | 郑州


B表
标志符 | 线别  |  代码  |  名称
----------------------
A07    | 01    |  207   | 北京
A07    | 01    |  208   | 郑州
A07    | 01    |  209   | 南京
AS2    | 30    |  101   | 北京
AS2    | 30    |  103   | 天津
AS2    | 30    |  104   | NULL
AS2    | 30    |  108   | 郑州


A表是标准字典表..里面含有统一的线路,代码.名称.线路和代码能确定一个站名.

B表的线别和代码是正确的..但是名称不一定正确...且同一组数据的标识符是一样的..

现在要根据A表把B表中数据按标识符把站名同步过来...

如何写update语句..

------解决方案--------------------
update a set 名称=b.名称 from b where a.代码=b.代码
------解决方案--------------------
update b
set b.名称=a.名称
from a inner join b on a.线别=b.线别 and a.代码=b.代码
where b.名称<>a.名称
------解决方案--------------------
引用:
Quote: 引用:

update b
set b.名称=a.名称
from a inner join b on a.线别=b.线别 and a.代码=b.代码
where b.名称<>a.名称

追问下..
如果A表里存在重复记录.这条语句该如何改动?